From f879f438007f6e6d44dfdd0de970556acabe9ad0 Mon Sep 17 00:00:00 2001 From: Kevin J Hoerr Date: Fri, 1 Nov 2024 18:06:05 -0400 Subject: shell.nix: Provide development environment using Nix --- shell.nix | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 shell.nix (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..9af70c0 --- /dev/null +++ b/shell.nix @@ -0,0 +1,33 @@ +# diesel min version is 1.77.2 +let + rust_overlay = import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"); + pkgs = import { overlays = [ rust_overlay ]; }; + rustVersion = "1.81.0"; + rust = pkgs.rust-bin.stable.${rustVersion}.default.override { + extensions = [ + "rust-src" # for rust-analyzer + "rust-analyzer" + ]; + }; +in +pkgs.mkShell { + buildInputs = [ + rust + ] ++ (with pkgs; [ + pkg-config + openssl + postgresql + rustfmt + cargo + gcc + clippy + llvmPackages.bintools + ]); + RUST_BACKTRACE = 1; + + # Certain Rust tools won't work without this + # This can also be fixed by using oxalica/rust-overlay and specifying the rust-src extension + # See https://discourse.nixos.org/t/rust-src-not-found-and-other-misadventures-of-developing-rust-on-nixos/11570/3?u=samuela. for more details. + RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; + PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig"; +} \ No newline at end of file -- cgit