rust-secp256k1-unsafe-fast/secp256k1-sys
Matt Corallo d9d398ccc9 Re-support WASM via simple stub headers
libsecp256k1 really only barely uses libc at all, and in practice,
things like memcpy/memcmp get optimized into something other than a
libc call. Thus, if we provide simple stub headers, things seem to
work with wasm-pack just fine.
2020-04-29 15:32:54 -04:00
..
depend Bump secp256k1-sys to v0.1.1 2019-12-11 15:55:00 +00:00
src Merge pull request #195 from elichai/patch-1 2020-04-06 14:49:58 +00:00
wasm-sysroot Re-support WASM via simple stub headers 2020-04-29 15:32:54 -04:00
Cargo.toml Bump secp256k1-sys to 0.1.2 2020-01-09 18:10:12 +02:00
LICENSE Add secp256k1-sys README and LICENSE files 2019-11-27 21:02:44 +00:00
README.md Add secp256k1-sys README and LICENSE files 2019-11-27 21:02:44 +00:00
build.rs Re-support WASM via simple stub headers 2020-04-29 15:32:54 -04:00
vendor-libsecp.sh Update Cargo.toml link in vendor script 2019-12-11 15:54:30 +00:00

README.md

secp256k1-sys

This crate provides Rust definitions for the FFI structures and methods.

Vendoring

The default build process is to build using the vendored libsecp256k1 sources in the depend folder. These sources are prefixed with a special rust-secp256k1-sys-specific prefix rustsecp256k1_v1_2_3_.

This prefix ensures that no symbol collision can happen:

  • when a Rust project has two different versions of rust-secp256k1 in its depepdency tree, or
  • when rust-secp256k1 is used for building a static library in a context where existing libsecp256k1 symbols are already linked.

To update the vendored sources, use the vendor-libsecp.sh script:

$ ./vendor-libsecp.sh depend <version-code> <rev>
  • Where <version-code> is the secp256k1-sys version number underscored: 0_1_2.
  • Where <rev> is the git revision of libsecp256k1 to checkout.

Linking to external symbols

For the more exotic use cases, this crate can be used with existing libsecp256k1 symbols by using the external-symbols feature. How to setup rustc to link against those existing symbols is left as an exercise to the reader.