diff --git a/Cargo.lock b/Cargo.lock index 336fc9664..02e8df3f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -463,6 +463,35 @@ dependencies = [ "zeroize", ] +[[package]] +name = "cxx" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e599641dff337570f6aa9c304ecca92341d30bf72e1c50287869ed6a36615a6" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3894ad0c6d517cb5a4ce8ec20b37cd0ea31b480fe582a104c5db67ae21270853" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34fa7e395dc1c001083c7eed28c8f0f0b5a225610f3b6284675f444af6fab86b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "dashmap" version = "4.0.2" @@ -968,6 +997,7 @@ dependencies = [ "bls12_381", "byteorder", "clearscreen", + "cxx", "ed25519-zebra", "group", "gumdrop", @@ -1001,6 +1031,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "link-cplusplus" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cae2cd7ba2f3f63938b9c724475dfb7b9861b545a90324476324ed21dbc8c8" +dependencies = [ + "cc", +] + [[package]] name = "lock_api" version = "0.4.7" diff --git a/Cargo.toml b/Cargo.toml index 37a006ea3..b579e5b96 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,6 +57,9 @@ zcash_proofs = "0.6" ed25519-zebra = "3" zeroize = "1.4.2" +# Rust/C++ interop +cxx = { version = "1.0", features = ["c++17"] } + # Rust threading rayon = "1.5"