aboutsummaryrefslogtreecommitdiff
path: root/zkvms/zkwasm/default.nix
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-01-15 13:11:10 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-01-15 13:11:10 +0200
commit818ba1a13973fe64c3d73e2bf90c45e2dcafec72 (patch)
tree88a2a2c59c6403775eae3f9d6fbb1d5684b5f47a /zkvms/zkwasm/default.nix
parentb1825ecc10e33565ea7bab6ed80be82356423446 (diff)
downloadzkVMs-benchmarks-818ba1a13973fe64c3d73e2bf90c45e2dcafec72.tar
zkVMs-benchmarks-818ba1a13973fe64c3d73e2bf90c45e2dcafec72.tar.gz
zkVMs-benchmarks-818ba1a13973fe64c3d73e2bf90c45e2dcafec72.zip
feat(flake): Implement zkwasm package
Diffstat (limited to 'zkvms/zkwasm/default.nix')
-rw-r--r--zkvms/zkwasm/default.nix77
1 files changed, 77 insertions, 0 deletions
diff --git a/zkvms/zkwasm/default.nix b/zkvms/zkwasm/default.nix
new file mode 100644
index 0000000..4f4e42f
--- /dev/null
+++ b/zkvms/zkwasm/default.nix
@@ -0,0 +1,77 @@
+{ zkVM-helpers,
+ lib,
+ rust-bin,
+ metacraft-labs,
+ wasm-pack,
+ wasm-bindgen-cli,
+ binaryen,
+ craneLib-default,
+}:
+let
+ commonArgs = {
+ pname = "zkwasm";
+ version = "infdev";
+
+ src = with lib.fileset; toSource {
+ root = ../..;
+ fileset = intersection (gitTracked ../..) (unions [
+ ./.
+ ../../guests
+ ../../guests_macro
+ ../../zkvms_host_io
+ ../../Vertices-010.in
+ ]);
+ };
+
+ cargoLock = ./Cargo.lock;
+ };
+
+ rust-toolchain = rust-bin.nightly."2024-04-09".default.override {
+ targets = ["wasm32-unknown-unknown"];
+ };
+ craneLib = craneLib-default.overrideToolchain rust-toolchain;
+ cargoArtifacts = craneLib.buildDepsOnly (zkVM-helpers.fixDeps commonArgs);
+in
+ craneLib.buildPackage (zkVM-helpers.withCustomPhases (commonArgs
+ // {
+ inherit cargoArtifacts;
+
+ nativeBuildInputs = [
+ metacraft-labs.zkwasm
+ wasm-pack
+ wasm-bindgen-cli
+ binaryen
+ ];
+
+ postPatch = ''
+ ln -s ../../../../guests/graph_coloring ./zkvms/zkwasm/guest/src/zkp
+ ln -s ../../../Cargo.lock ./zkvms/zkwasm/guest/
+ '';
+
+ hostBin = "host-zkwasm";
+
+ buildGuestPhase = ''
+ pushd guest
+
+ # Workaround from
+ # https://github.com/rustwasm/wasm-pack/issues/1335
+ export WASM_PACK_CACHE=.wasm-pack-cache
+
+ wasm-pack build --release --frozen
+ popd
+ '';
+
+ postInstall = ''
+ mv zkvms/zkwasm/guest/pkg "$out"/
+ '';
+
+ preBuild = ''
+ export GUEST_PATH="$out/pkg/guest_bg.wasm"
+ '';
+
+ preRun = ''
+ export PATH="\$PATH:${metacraft-labs.zkwasm}/bin"
+ '';
+
+ doCheck = false;
+ }))