2019-10-29 22:25:24 +00:00
|
|
|
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.
|
|
|
|
|
2020-03-14 14:04:37 +00:00
|
|
|
## Note
|
|
|
|
|
|
|
|
The build dependency `cc` might require a recent version of the rust compiler.
|
|
|
|
If you want to compile it with rust 1.22.0, pin its version in your `Cargo.lock`
|
|
|
|
with `cargo update -p cc --precise 1.0.41`.
|
2019-10-29 22:25:24 +00:00
|
|
|
|
|
|
|
## 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.
|