/ flake.nix
flake.nix
1 # SPDX-License-Identifier: AGPL-3.0-or-later 2 # SPDX-FileCopyrightText: 2024-2025 hyperpolymath 3 { 4 description = "Oikos Bot: Ecological & Economic Code Analysis Platform"; 5 6 inputs = { 7 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 8 flake-utils.url = "github:numtide/flake-utils"; 9 rust-overlay.url = "github:oxalica/rust-overlay"; 10 }; 11 12 outputs = { self, nixpkgs, flake-utils, rust-overlay }: 13 flake-utils.lib.eachDefaultSystem (system: 14 let 15 overlays = [ (import rust-overlay) ]; 16 pkgs = import nixpkgs { 17 inherit system overlays; 18 config.allowUnfree = true; 19 }; 20 in 21 { 22 devShells.default = pkgs.mkShell { 23 buildInputs = with pkgs; [ 24 # Haskell 25 ghc 26 cabal-install 27 haskell-language-server 28 29 # OCaml 30 ocaml 31 dune_3 32 opam 33 ocamlPackages.merlin 34 ocamlPackages.yojson 35 ocamlPackages.ppx_deriving 36 ocamlPackages.re 37 ocamlPackages.cmdliner 38 39 # ReScript + Deno 40 deno 41 nodejs_20 42 43 # Python 44 (python311.withPackages (ps: with ps; [ 45 numpy torch networkx pyyaml aiohttp pytest 46 ])) 47 48 # Rust 49 (rust-bin.stable.latest.default.override { 50 extensions = [ "rust-src" "rust-analyzer" ]; 51 }) 52 53 # Tools 54 git gnumake jq ripgrep fd 55 podman buildah 56 souffle swiProlog 57 ]; 58 59 shellHook = '' 60 echo "🏛️ Oikos Bot Dev Shell" 61 export DENO_DIR="$PWD/.deno" 62 ''; 63 }; 64 } 65 ); 66 }