feature image

2023年12月25日 | ブログ記事

オレオレRustプロジェクトテンプレート

これはアドベントカレンダー2023最終日の記事です。

アドベントカレンダー最終日ですね

アドベントカレンダー2023としてなんと 41 もの記事が投稿されました(2023/12/25 19:00現在)。担当者として嬉しい限りです。

約1ヶ月間、部員が様々なブログを投稿してきましたが、楽しんでいただけましたでしょうか?今後も部内での活動をブログを通して発信していきますので、是非ご覧ください!

以下この記事の本題↓

TL; DR

GitHub - H1rono/my-rust-template: My template repository of rust project
My template repository of rust project. Contribute to H1rono/my-rust-template development by creating an account on GitHub.

を作りました。おしまい。

だけだと物足りないと思うので何が入ってるかをつらつら書こうと思います。

なんで作ったの

最近のハッカソンでflake.nixを切り貼りしたり、gitignoreをいろんなところからコピペしたり、rust-toolchain.tomlを手書きしたりしたのですが、もう同じことをやりたくないと思ったからです。ちなみにハッカソンの私のチームのブログ記事は2024/1月中には出ます多分。

rust-toolchain.toml

最近LT会とかで布教したやつです。

rust-toolchain.tomlを書こう
これはアドベントカレンダー2023 22日目の記事です。 モチベーション プロジェクト内で使用するRustバージョンを揃えたい!! と思うことはよくあるかと思います。nightlyの機能を使っているプロジェクトとかだと尚更ですね。さて一体どうやるのか?2つ、検討して見ましょう。 1. .tool-versionsを書く asdfに依存してしまいますし、GitHub ActionsなどCI環境でも取り回しが良くないです。 2. rustupのコマンドを使う rustup override set ...といったコマンドを実行してもらえばバージョンを揃えることができます。しかし「これを実行してね」とREADMEに書くのはやや手間ですし、CI環境でも無駄なコマンドを実行する必要があります。 なかなかベストな案が出ませんね。そこで使うのがrust-toolchain.tomlです。 rust-toolchain.tomlができること このファイルをプロジェクトのリポジトリに置くことで、そのリポジトリで使用するrustの構成を指定できます。具体的には、以
詳細はこちら

Nix Flakes

flake.nixflake.lockの2ファイルです。ちょっと解説(?)するとrust-overlay + craneです。crane便利ですね。あとnix flake checkなるコマンドの存在をcrane使ってて初めて知りました。

ちなみにNix導入の経緯 ↓

うっかり`rm -rf ~`したのでOSを入れ直した話
この記事は アドベントカレンダー2023 3日目の記事です。ポストイメージはカメラロールにあったyakudoラーメンです。 TL; DR やってしまいました... ということでOSを入れ直しました(!?) まあそろそろ入れ直したいなとは思っていたので、いいきっかけだということで... ちなみにことの経緯↓ リポジトリ内でcargo-audit使う→リポジトリ直下に`~`という名前のフォルダができる→消そうとして`rm -rf ~`→☠️ 途中で止めたけど何が消えたかわからん... — H1rono_K (@H1rono_K) October 28, 2023 環境 M1 MacBook Airで、初期OSはmacOS Montereyです(後で効いてくるので書いておきます)。rm前はSonomaでした。 入れ直しの手順 1. Time Machineでバックアップ 2. 外付けSSDからmac起動 3. 本体のディスクからmacOSを削除 4. SSDのmacからinstall 5. Apple ID認証 6.

これ深夜に書いてるんですがラーメン食べたくなってきました。

direnv

use flakeだけです。非nixユーザーにも優しくなるようにnixコマンドが見つからなかったら何もしないようにしてます。

GitHub Actions

build, rustfmt, clippyのチェックを非nixとnixの2パターンでやってます。nix使うとどうしてもCI実行が遅くなっちゃいますね。

テンプレートリポジトリにバッジ貼るわけにはいかないよなと思ってこっちにバッジ: Rust

おしまい

ここまでと大体同じ内容がREADMEにオレオレEnglishで書いてあるらしいですね。

これからのtraPブログ記事もお楽しみに!

H1rono_K icon
この記事を書いた人
H1rono_K

趣味プログラマー(大学生)

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年12月11日
DIGI-CON HACKATHON 2023『Mikage』
toshi00 icon toshi00
2023年12月13日
HgameOPについて語る
noc7t icon noc7t
2022年9月26日
競プロしかシラン人間が web アプリ QK Judge を作った話
tqk icon tqk
2024年12月11日
Nixで実行環境のライセンス違反を予防する話
comavius icon comavius
2024年8月29日
クロスコンパイルRust
H1rono_K icon H1rono_K
2023年12月18日
GPU側でレイヤーブレンドする絵描きソフトの同期方法
tq icon tq
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記