TodoMVC-Nix
HaskellとRustのTodoMVCをNixでbuildしている
1つのrepo内に、Haskell実装のTodoMVCと、Rust実装のTodoMVCが独立してある
両者をNixを使ってbuildするという構成になっている
どちらともfrontendもその言語で書かれている(JSを使っていない)
Build with Nix入門を目的として作られているので参考になる
github
HaskellとRustに対してBuild with Nixの参考になる
hsは、misoを使っている
rsは、Dominatorを使っている
DB使っている
PostgresSQL
CI/CDも考慮している
Flakesを使っている
nix部分のdocs
https://github.com/nix-community/todomvc-nix/blob/master/docs/Nix.md
全ファイルに対して説明がなされていて良いmrsekut.icon*2
default.nix
shell.nix
flake.nix
overlay.nix
hsのライブラリ名などを列挙している
NixのOverlays
nix/
default.nix
database/
default.nix
migrate.nix
pgutil.nix
haskell/
default.nix
haskell-miso/
default.nix
rust-overlay/
default.nix
rust-frontend/
default.nix
devshell.nix
参考
Numtide - todomvc-nix: One-Stop Solution for Developing Projects Using Nix
元々はHaskellのみで、DBやCIも考慮してなかった
が、その辺も踏まえてupgradeしたらしい
そのupgradeの背景や、どの辺をどういう意図で書き換えたのかの説明