mermaid-cli 0.3.8

Open-source AI pair programmer with agentic capabilities. Local-first with Ollama, native tool calling, and beautiful TUI.
Documentation
{
  description = "A minimal development shell for cargo2nix (Phase 1: uses pre-built cargo)";

  inputs = {
    nixpkgs.url = "github:meta-introspector/nixpkgs?ref=feature/CRQ-016-nixify";
    rust-overlay = {
      url = "github:meta-introspector/rust-overlay?ref=feature/CRQ-016-nixify";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    flake-utils.url = "github:meta-introspector/flake-utils?ref=feature/CRQ-016-nixify";
    #cargo2nix.url = "github:cargo2nix/cargo2nix/release-0.12";
  };

  outputs =
    { self
    , nixpkgs
    , rust-overlay
    , flake-utils
    , #cargo2nix
    }:
    flake-utils.lib.eachDefaultSystem (system:
    let
      overlays = [
        #cargo2nix.overlays.default
        rust-overlay.overlays.default
      ];
      pkgs = import nixpkgs {
        inherit system overlays;
        config = {
          permittedInsecurePackages = [ "openssl-1.1.1w" ];
        };
      };

      myRustc = pkgs.rust-bin.nightly."2025-09-16".default;

      rustPkgs = pkgs.rustBuilder.makePackageSet {
        rustToolchain = myRustc;
      };

      # Use pre-built cargo from nixpkgs for Phase 1
      cargo = pkgs.cargo;

      workspaceShell = pkgs.mkShell {
        packages = [ 
          pkgs.statix 
          pkgs.openssl_1_1.dev 
          pkgs.zlib.dev 
          pkgs.sccache 
          pkgs.llvm_19
          pkgs.libclang
          pkgs.clang_19
          pkgs.pkg-config
        ];
        shellHook = ''
          export PKG_CONFIG_PATH=${pkgs.openssl_1_1.dev}/lib/pkgconfig:${pkgs.zlib.dev}/lib/pkgconfig:$PKG_CONFIG_PATH
          export PATH=${myRustc}/bin:${cargo}/bin:${pkgs.sccache}/bin:$PATH
          
          # Configure libclang for bindgen (RocksDB needs this)
          export LIBCLANG_PATH=${pkgs.libclang.lib}/lib
          export CLANG_PATH=${pkgs.clang_19}/bin/clang
          
          # Set up bindgen environment for RocksDB
          export BINDGEN_EXTRA_CLANG_ARGS="-I${pkgs.llvm_19.dev}/include -I${pkgs.glibc.dev}/include -I${pkgs.gcc.cc}/lib/gcc/x86_64-unknown-linux-gnu/*/include"
          
          # Ensure C++ compiler is available for RocksDB
          export CC=${pkgs.clang_19}/bin/clang
          export CXX=${pkgs.clang_19}/bin/clang++
          
          # RocksDB specific environment
          export ROCKSDB_STATIC=1
          
          echo "🦀 Rust + RocksDB development environment ready!"
          echo "LIBCLANG_PATH: $LIBCLANG_PATH"
          echo "CC: $CC"
          echo "CXX: $CXX"
        '';
      };
    in
    rec {
      devShells = {
        default = workspaceShell;
      };

      packages = rec {
        inherit cargo;
        default = cargo;
      };

      apps = rec {
        cargo = { type = "app"; program = "${packages.cargo}/bin/cargo"; };
        default = cargo;
      };
    }
    );
}