let # Import nixpkgs and add the Mozilla overlay nixpkgs = import { overlays = [ (import (builtins.fetchTarball { url = "https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz"; })) ]; }; in nixpkgs.mkShell { buildInputs = [ ((nixpkgs.rustChannelOf { channel = "stable"; date = null; # null = latest stable channel }).rust.override { extensions = [ "rust-src" "rust-analysis" ]; }) nixpkgs.openssl nixpkgs.pkg-config nixpkgs.sqlite nixpkgs.libpq nixpkgs.lldb nixpkgs.libmysqlclient ]; shellHook = '' export TMPDIR=/tmp export PATH=$PATH:$HOME/.cargo/bin # Ensure dynamic linker can find required libs (SQLite, OpenSSL, PostgreSQL, MySQL) export LD_LIBRARY_PATH=${nixpkgs.openssl.out}/lib:${nixpkgs.sqlite.out}/lib:${nixpkgs.libpq.out}/lib:${nixpkgs.libmysqlclient.out}/lib:$LD_LIBRARY_PATH # Install diesel_cli if not already installed if ! command -v diesel >/dev/null 2>&1; then echo "Installing diesel_cli (SQLite)..." cargo install diesel_cli --no-default-features --features "sqlite" fi ''; }