1{2 description = "Jrsonnet";3 inputs = {4 nixpkgs.url = "github:nixos/nixpkgs";5 flake-utils.url = "github:numtide/flake-utils";6 rust-overlay.url = "github:oxalica/rust-overlay";7 };8 outputs = { nixpkgs, flake-utils, rust-overlay, ... }:9 flake-utils.lib.eachDefaultSystem (system:10 let11 pkgs = import nixpkgs {12 inherit system;13 overlays = [ rust-overlay.overlays.default ];14 };15 rust = ((pkgs.rustChannelOf { date = "2022-11-10"; channel = "nightly"; }).default.override {16 extensions = [ "rust-src" "miri" ];17 });18 in19 rec {20 packages = rec {21 go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix { };22 sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix { };23 jsonnet = pkgs.callPackage ./nix/jsonnet.nix { };24 25 26 jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {27 rustPlatform = pkgs.makeRustPlatform {28 rustc = rust;29 cargo = rust;30 };31 };32 jrsonnet-release = pkgs.callPackage ./nix/jrsonnet-release.nix {33 rustPlatform = pkgs.makeRustPlatform {34 rustc = rust;35 cargo = rust;36 };37 };3839 benchmarks = pkgs.callPackage ./nix/benchmarks.nix {40 inherit go-jsonnet sjsonnet jsonnet jrsonnet jrsonnet-release;41 };42 benchmarks-quick = pkgs.callPackage ./nix/benchmarks.nix {43 inherit go-jsonnet sjsonnet jsonnet jrsonnet jrsonnet-release;44 quick = true;45 };46 benchmarks-against-release = pkgs.callPackage ./nix/benchmarks.nix {47 inherit go-jsonnet sjsonnet jsonnet jrsonnet jrsonnet-release;48 againstRelease = true;49 };50 benchmarks-quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {51 inherit go-jsonnet sjsonnet jsonnet jrsonnet jrsonnet-release;52 quick = true;53 againstRelease = true;54 };55 };56 devShell = pkgs.mkShell {57 nativeBuildInputs = with pkgs;[58 rust59 cargo-edit60 lld61 hyperfine62 valgrind63 ];64 };65 }66 );67}