diff --git a/crates/Cargo.toml b/crates/Cargo.toml index 96da21d..0a8bb3c 100644 --- a/crates/Cargo.toml +++ b/crates/Cargo.toml @@ -15,4 +15,4 @@ num-bigint = "0.4.6" num-traits = "0.2.19" [build-dependencies] -cc = "1.0" \ No newline at end of file +cc = "1.0" diff --git a/crates/README.md b/crates/README.md index d547453..64c9efb 100644 --- a/crates/README.md +++ b/crates/README.md @@ -77,6 +77,10 @@ let valid = rust_rapidsnark::groth16_verify_wrapper( - aarch64-linux-android - x86_64-linux-android +## Uploaded binaries + +- Rapidsnark artifacts are uploaded [here](https://github.com/vivianjeng/rapidsnark/actions/runs/13075683259) + ## Community - Website: [zkmopro.com](https://zkmopro.com) diff --git a/crates/build.rs b/crates/build.rs index 0d2730a..308640c 100644 --- a/crates/build.rs +++ b/crates/build.rs @@ -2,20 +2,34 @@ use std::env; use std::fs; use std::path::Path; use std::path::PathBuf; +use std::process::Command; + +const RAPIDSNARK_DOWNLOAD_SCRIPT: &str = include_str!("./download_rapidsnark.sh"); fn main() { - let target = std::env::var("TARGET").unwrap(); + let target = env::var("TARGET").unwrap(); + let out_dir = env::var("OUT_DIR").expect("OUT_DIR not set"); let arch = target.split('-').next().unwrap(); // Try to list contents of the target directory - let manifest_dir = PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap()); - let rapidsnark_dir = manifest_dir.join("rapidsnark"); - let absolute_lib_path = if rapidsnark_dir.join(&target).exists() { - rapidsnark_dir.join(&target) + let rapidsnark_path = Path::new(&out_dir).join(Path::new("rapidsnark")); + // If the rapidsnark repo is not downloaded, download it + if !rapidsnark_path.exists() { + let rapidsnark_script_path = Path::new(&out_dir).join(Path::new("download_rapidsnark.sh")); + fs::write(&rapidsnark_script_path, RAPIDSNARK_DOWNLOAD_SCRIPT) + .expect("Failed to write build script"); + Command::new("sh") + .arg(rapidsnark_script_path.to_str().unwrap()) + .spawn() + .expect("Failed to spawn rapidsnark download") + .wait() + .expect("rapidsnark download errored"); + } + let absolute_lib_path = if rapidsnark_path.join(&target).exists() { + rapidsnark_path.join(&target) } else { - rapidsnark_dir.join(arch) + rapidsnark_path.join(arch) }; - let compiler = cc::Build::new().get_compiler(); let cpp_stdlib = if compiler.is_like_clang() { "c++" diff --git a/crates/download_rapidsnark.sh b/crates/download_rapidsnark.sh new file mode 100755 index 0000000..3b17f4d --- /dev/null +++ b/crates/download_rapidsnark.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# Exit on error +set -e + +# OUT_DIR is specified by the rust build environment +if [ -z $OUT_DIR ]; then + echo "OUT_DIR not specified" + exit 1 +fi +# TARGET is specified by the rust build environment +if [ -z $TARGET ]; then + echo "TARGET not specified" + exit 1 +fi +BUILD_DIR=$OUT_DIR/rapidsnark +mkdir -p $BUILD_DIR + +download_and_unzip() { + local target="$1" + local zip_file="$BUILD_DIR/$target.zip" + curl -L -o $zip_file https://rapidsnark.zkmopro.org/$target.zip + unzip $zip_file -d $BUILD_DIR +} + +download_and_unzip $TARGET +# Check if curl was successful +if [ $? -ne 0 ]; then + arch=$(echo "$TARGET" | cut -d'-' -f1) + download_and_unzip $arch +fi diff --git a/crates/rapidsnark/README.md b/crates/rapidsnark/README.md deleted file mode 100644 index 2dee0f6..0000000 --- a/crates/rapidsnark/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Built from [here](https://github.com/chancehudson/rapidsnark/tree/rust-ffi). This is built into static libraries and then linked into the rust project. Importantly we need to compile static libraries for each platform we intend to support. - -Linking static libraries instead of compiling from c++ source should make it easier to maintain the `build.rs` script. diff --git a/crates/rapidsnark/aarch64-apple-darwin/libfq.a b/crates/rapidsnark/aarch64-apple-darwin/libfq.a deleted file mode 100644 index 7369d1a..0000000 Binary files a/crates/rapidsnark/aarch64-apple-darwin/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-darwin/libfr.a b/crates/rapidsnark/aarch64-apple-darwin/libfr.a deleted file mode 100644 index 9bc7fc3..0000000 Binary files a/crates/rapidsnark/aarch64-apple-darwin/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-darwin/libgmp.a b/crates/rapidsnark/aarch64-apple-darwin/libgmp.a deleted file mode 100644 index 88a0e61..0000000 Binary files a/crates/rapidsnark/aarch64-apple-darwin/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-darwin/librapidsnark-fr-fq.a b/crates/rapidsnark/aarch64-apple-darwin/librapidsnark-fr-fq.a deleted file mode 100644 index 15547b9..0000000 Binary files a/crates/rapidsnark/aarch64-apple-darwin/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-darwin/librapidsnark.a b/crates/rapidsnark/aarch64-apple-darwin/librapidsnark.a deleted file mode 100644 index d9a56e0..0000000 Binary files a/crates/rapidsnark/aarch64-apple-darwin/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-darwin/librapidsnark.dylib b/crates/rapidsnark/aarch64-apple-darwin/librapidsnark.dylib deleted file mode 100755 index 38e26ce..0000000 Binary files a/crates/rapidsnark/aarch64-apple-darwin/librapidsnark.dylib and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios-sim/libfq.a b/crates/rapidsnark/aarch64-apple-ios-sim/libfq.a deleted file mode 100644 index 36b533d..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios-sim/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios-sim/libfr.a b/crates/rapidsnark/aarch64-apple-ios-sim/libfr.a deleted file mode 100644 index 0bfd08b..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios-sim/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios-sim/libgmp.a b/crates/rapidsnark/aarch64-apple-ios-sim/libgmp.a deleted file mode 100644 index 9117f22..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios-sim/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark-fr-fq.a b/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark-fr-fq.a deleted file mode 100644 index ba881b9..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark.a b/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark.a deleted file mode 100644 index 2af5a92..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark.dylib b/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark.dylib deleted file mode 100755 index 7a26d89..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios-sim/librapidsnark.dylib and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios/libfq.a b/crates/rapidsnark/aarch64-apple-ios/libfq.a deleted file mode 100644 index 6545f05..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios/libfr.a b/crates/rapidsnark/aarch64-apple-ios/libfr.a deleted file mode 100644 index 0f04d3f..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios/libgmp.a b/crates/rapidsnark/aarch64-apple-ios/libgmp.a deleted file mode 100644 index 3941c00..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios/librapidsnark-fr-fq.a b/crates/rapidsnark/aarch64-apple-ios/librapidsnark-fr-fq.a deleted file mode 100644 index 5e1bcaf..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios/librapidsnark.a b/crates/rapidsnark/aarch64-apple-ios/librapidsnark.a deleted file mode 100644 index 87a38ce..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-apple-ios/librapidsnark.dylib b/crates/rapidsnark/aarch64-apple-ios/librapidsnark.dylib deleted file mode 100755 index c434474..0000000 Binary files a/crates/rapidsnark/aarch64-apple-ios/librapidsnark.dylib and /dev/null differ diff --git a/crates/rapidsnark/aarch64-linux-android/libfq.a b/crates/rapidsnark/aarch64-linux-android/libfq.a deleted file mode 100644 index 5e1e98c..0000000 Binary files a/crates/rapidsnark/aarch64-linux-android/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-linux-android/libfr.a b/crates/rapidsnark/aarch64-linux-android/libfr.a deleted file mode 100644 index 1cb1de1..0000000 Binary files a/crates/rapidsnark/aarch64-linux-android/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-linux-android/libgmp.a b/crates/rapidsnark/aarch64-linux-android/libgmp.a deleted file mode 100644 index a3364a2..0000000 Binary files a/crates/rapidsnark/aarch64-linux-android/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-linux-android/librapidsnark-fr-fq.a b/crates/rapidsnark/aarch64-linux-android/librapidsnark-fr-fq.a deleted file mode 100644 index 8dd8311..0000000 Binary files a/crates/rapidsnark/aarch64-linux-android/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-linux-android/librapidsnark.a b/crates/rapidsnark/aarch64-linux-android/librapidsnark.a deleted file mode 100644 index 5438903..0000000 Binary files a/crates/rapidsnark/aarch64-linux-android/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64-linux-android/librapidsnark.so b/crates/rapidsnark/aarch64-linux-android/librapidsnark.so deleted file mode 100755 index 013e89b..0000000 Binary files a/crates/rapidsnark/aarch64-linux-android/librapidsnark.so and /dev/null differ diff --git a/crates/rapidsnark/aarch64/libfq.a b/crates/rapidsnark/aarch64/libfq.a deleted file mode 100644 index 09b3e68..0000000 Binary files a/crates/rapidsnark/aarch64/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64/libfr.a b/crates/rapidsnark/aarch64/libfr.a deleted file mode 100644 index 55c093d..0000000 Binary files a/crates/rapidsnark/aarch64/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64/libgmp.a b/crates/rapidsnark/aarch64/libgmp.a deleted file mode 100644 index 2559928..0000000 Binary files a/crates/rapidsnark/aarch64/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64/librapidsnark-fr-fq.a b/crates/rapidsnark/aarch64/librapidsnark-fr-fq.a deleted file mode 100644 index 2e42455..0000000 Binary files a/crates/rapidsnark/aarch64/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64/librapidsnark.a b/crates/rapidsnark/aarch64/librapidsnark.a deleted file mode 100644 index 0a8036f..0000000 Binary files a/crates/rapidsnark/aarch64/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/aarch64/librapidsnark.so b/crates/rapidsnark/aarch64/librapidsnark.so deleted file mode 100644 index 7d7aece..0000000 Binary files a/crates/rapidsnark/aarch64/librapidsnark.so and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-darwin/libfq.a b/crates/rapidsnark/x86_64-apple-darwin/libfq.a deleted file mode 100644 index 4abfbf5..0000000 Binary files a/crates/rapidsnark/x86_64-apple-darwin/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-darwin/libfr.a b/crates/rapidsnark/x86_64-apple-darwin/libfr.a deleted file mode 100644 index cf36b3e..0000000 Binary files a/crates/rapidsnark/x86_64-apple-darwin/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-darwin/libgmp.a b/crates/rapidsnark/x86_64-apple-darwin/libgmp.a deleted file mode 100644 index a76bba1..0000000 Binary files a/crates/rapidsnark/x86_64-apple-darwin/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-darwin/librapidsnark-fr-fq.a b/crates/rapidsnark/x86_64-apple-darwin/librapidsnark-fr-fq.a deleted file mode 100644 index c03261f..0000000 Binary files a/crates/rapidsnark/x86_64-apple-darwin/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-darwin/librapidsnark.a b/crates/rapidsnark/x86_64-apple-darwin/librapidsnark.a deleted file mode 100644 index 77b66af..0000000 Binary files a/crates/rapidsnark/x86_64-apple-darwin/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-darwin/librapidsnark.dylib b/crates/rapidsnark/x86_64-apple-darwin/librapidsnark.dylib deleted file mode 100755 index 974321e..0000000 Binary files a/crates/rapidsnark/x86_64-apple-darwin/librapidsnark.dylib and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-ios/libfq.a b/crates/rapidsnark/x86_64-apple-ios/libfq.a deleted file mode 100644 index 2e0b50c..0000000 Binary files a/crates/rapidsnark/x86_64-apple-ios/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-ios/libfr.a b/crates/rapidsnark/x86_64-apple-ios/libfr.a deleted file mode 100644 index c02df24..0000000 Binary files a/crates/rapidsnark/x86_64-apple-ios/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-ios/libgmp.a b/crates/rapidsnark/x86_64-apple-ios/libgmp.a deleted file mode 100644 index 14e6214..0000000 Binary files a/crates/rapidsnark/x86_64-apple-ios/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-ios/librapidsnark-fr-fq.a b/crates/rapidsnark/x86_64-apple-ios/librapidsnark-fr-fq.a deleted file mode 100644 index 0cf9f3b..0000000 Binary files a/crates/rapidsnark/x86_64-apple-ios/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-ios/librapidsnark.a b/crates/rapidsnark/x86_64-apple-ios/librapidsnark.a deleted file mode 100644 index 1f5369f..0000000 Binary files a/crates/rapidsnark/x86_64-apple-ios/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-apple-ios/librapidsnark.dylib b/crates/rapidsnark/x86_64-apple-ios/librapidsnark.dylib deleted file mode 100755 index b67dfcd..0000000 Binary files a/crates/rapidsnark/x86_64-apple-ios/librapidsnark.dylib and /dev/null differ diff --git a/crates/rapidsnark/x86_64-linux-android/libfq.a b/crates/rapidsnark/x86_64-linux-android/libfq.a deleted file mode 100644 index 06e7b85..0000000 Binary files a/crates/rapidsnark/x86_64-linux-android/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-linux-android/libfr.a b/crates/rapidsnark/x86_64-linux-android/libfr.a deleted file mode 100644 index 8cc898b..0000000 Binary files a/crates/rapidsnark/x86_64-linux-android/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-linux-android/libgmp.a b/crates/rapidsnark/x86_64-linux-android/libgmp.a deleted file mode 100644 index ba1b623..0000000 Binary files a/crates/rapidsnark/x86_64-linux-android/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-linux-android/librapidsnark-fr-fq.a b/crates/rapidsnark/x86_64-linux-android/librapidsnark-fr-fq.a deleted file mode 100644 index 787f089..0000000 Binary files a/crates/rapidsnark/x86_64-linux-android/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-linux-android/librapidsnark.a b/crates/rapidsnark/x86_64-linux-android/librapidsnark.a deleted file mode 100644 index 9ea3be0..0000000 Binary files a/crates/rapidsnark/x86_64-linux-android/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64-linux-android/librapidsnark.so b/crates/rapidsnark/x86_64-linux-android/librapidsnark.so deleted file mode 100644 index 186266e..0000000 Binary files a/crates/rapidsnark/x86_64-linux-android/librapidsnark.so and /dev/null differ diff --git a/crates/rapidsnark/x86_64/libfq.a b/crates/rapidsnark/x86_64/libfq.a deleted file mode 100644 index e13732b..0000000 Binary files a/crates/rapidsnark/x86_64/libfq.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64/libfr.a b/crates/rapidsnark/x86_64/libfr.a deleted file mode 100644 index adc3fc6..0000000 Binary files a/crates/rapidsnark/x86_64/libfr.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64/libgmp.a b/crates/rapidsnark/x86_64/libgmp.a deleted file mode 100644 index 210e918..0000000 Binary files a/crates/rapidsnark/x86_64/libgmp.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64/librapidsnark-fr-fq.a b/crates/rapidsnark/x86_64/librapidsnark-fr-fq.a deleted file mode 100644 index cf8e61c..0000000 Binary files a/crates/rapidsnark/x86_64/librapidsnark-fr-fq.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64/librapidsnark.a b/crates/rapidsnark/x86_64/librapidsnark.a deleted file mode 100644 index 89bfe2f..0000000 Binary files a/crates/rapidsnark/x86_64/librapidsnark.a and /dev/null differ diff --git a/crates/rapidsnark/x86_64/librapidsnark.so b/crates/rapidsnark/x86_64/librapidsnark.so deleted file mode 100644 index 8f0de26..0000000 Binary files a/crates/rapidsnark/x86_64/librapidsnark.so and /dev/null differ