diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-01-28 16:39:43 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-01-28 16:39:43 +0200 |
| commit | 6552204f97af57afc861637b4da848642fbb78b9 (patch) | |
| tree | 2b8a3696884299d72d84f2e029ff430b6dc7fc5f | |
| parent | 7265f77c3f60b64375f741092c8a709326a01afa (diff) | |
| download | zkVMs-benchmarks-6552204f97af57afc861637b4da848642fbb78b9.tar zkVMs-benchmarks-6552204f97af57afc861637b4da848642fbb78b9.tar.gz zkVMs-benchmarks-6552204f97af57afc861637b4da848642fbb78b9.zip | |
feat(flake): Add zkvm with guest implementation packages
Now, you have zkvm/guest_implementation packages, where you'll build and
run the zkVM with guest_implementation
| -rw-r--r-- | flake.nix | 40 |
1 files changed, 26 insertions, 14 deletions
@@ -46,7 +46,7 @@ # Requirements: # - zkVM is inside zkvms/pname/ # - guest crate is located at zkvms/pname/guest and is named "guest" - withCustomPhases = currentPackage: let + withCustomPhases = guest: currentPackage: let hostBin = currentPackage.hostBin or ("host-" + currentPackage.pname); in with currentPackage; { phases = [ @@ -117,22 +117,34 @@ doNotPostBuildInstallCargoBinaries = true; } // currentPackage; + createPackages = guestName: let + guest = if guestName == null then "graph_coloring" else guestName; + postfix = if guestName == null then "" else "/" + guest; - args-zkVM = { - craneLib-default = crane.mkLib pkgs; - zkVM-helpers = { - inherit fixDeps; - inherit withCustomPhases; + args-zkVM = { + craneLib-default = crane.mkLib pkgs; + zkVM-helpers = { + inherit fixDeps; + withCustomPhases = withCustomPhases guest; + }; }; + in { + "risc0${postfix}" = callPackage ./zkvms/risc0/default.nix args-zkVM; + "sp1${postfix}" = callPackage ./zkvms/sp1/default.nix args-zkVM; + "zkwasm${postfix}" = callPackage ./zkvms/zkwasm/default.nix args-zkVM; + "zkm${postfix}" = callPackage ./zkvms/zkm/default.nix args-zkVM; + "jolt${postfix}" = callPackage ./zkvms/jolt/default.nix args-zkVM; + "nexus${postfix}" = callPackage ./zkvms/nexus/default.nix args-zkVM; }; + + guests = [ null ] ++ (builtins.attrNames + (pkgs.lib.filterAttrs + (_: type: type == "directory") + (builtins.readDir ./guests))); in { - packages.${system} = { - risc0 = callPackage ./zkvms/risc0/default.nix args-zkVM; - sp1 = callPackage ./zkvms/sp1/default.nix args-zkVM; - zkwasm = callPackage ./zkvms/zkwasm/default.nix args-zkVM; - zkm = callPackage ./zkvms/zkm/default.nix args-zkVM; - jolt = callPackage ./zkvms/jolt/default.nix args-zkVM; - nexus = callPackage ./zkvms/nexus/default.nix args-zkVM; - }; + packages.${system} = pkgs.lib.foldr + (guest: accum: accum // (createPackages guest)) + {} + guests; }; } |
