rust-nix-template/README.md

33 lines
1.3 KiB
Markdown
Raw Normal View History

2024-01-20 09:09:43 +01:00
A template Rust project with fully functional and no-frills Nix support, as well as builtin VSCode configuration to get IDE experience without any manual setup (just [install direnv](https://nixos.asia/en/direnv), open in VSCode and accept the suggestions).
2021-04-10 18:10:57 +02:00
2023-07-26 20:51:14 +02:00
>[!NOTE]
2023-07-26 20:52:23 +02:00
> If you are looking for the original template based on [this blog post](https://srid.ca/rust-nix)'s use of `crate2nix`, browse from [this tag](https://github.com/srid/rust-nix-template/tree/crate2nix). The evolution of this template can be gleaned from [releases](https://github.com/srid/rust-nix-template/releases).
2021-04-10 18:12:49 +02:00
2021-04-10 18:10:57 +02:00
## Adapting this template
2023-08-05 16:32:18 +02:00
- Run `nix develop` to have a working shell ready before name change.
- Change `name` in Cargo.toml.
- Run `cargo generate-lockfile` in the nix shell
- There are two CI workflows, and one of them uses Nix which is slower (unless you configure a cache) than the other that is based on rustup. Pick one or the other depending on your trade-offs.
2021-04-10 18:10:57 +02:00
## Development (Flakes)
2023-06-26 18:37:06 +02:00
This repo uses [Flakes](https://nixos.wiki/wiki/Flakes) from the get-go.
2021-04-07 00:24:07 +02:00
```bash
2021-04-10 18:10:57 +02:00
# Dev shell
2021-04-07 00:24:07 +02:00
nix develop
2021-04-10 18:10:57 +02:00
# or run via cargo
2021-04-07 00:24:07 +02:00
nix develop -c cargo run
2021-04-10 18:10:57 +02:00
# build
nix build
```
2023-07-26 20:51:14 +02:00
We also provide a [`justfile`](https://just.systems/) for Makefile'esque commands.
2023-10-26 18:41:05 +02:00
## See Also
- [nixos.wiki: Packaging Rust projects with nix](https://nixos.wiki/wiki/Rust#Packaging_Rust_projects_with_nix)