2 unstable releases

Uses old Rust 2015

0.2.0 Jan 12, 2021
0.1.0 Jun 3, 2019

#152 in Rust patterns

Used in secp256k1-zkp

CC0 license


C 7.5K SLoC // 0.1% comments GNU Style Assembly 742 SLoC // 0.1% comments Rust 407 SLoC // 0.1% comments Automake 158 SLoC Shell 115 SLoC // 0.1% comments


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


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

This prefix ensures that no symbol collision can happen:

  • when a Rust project has two different versions of rust-secp256k1-zkp in its depepdency tree, or
  • when rust-secp256k1-zkp is used for building a static library in a context where existing libsecp256k1-zkp 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-zkp-sys version number underscored: 0_1_2.
  • Where <rev> is the git revision of libsecp256k1-zkp to checkout.

Linking to external symbols

For the more exotic use cases, this crate can be used with existing libsecp256k1-zkp 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.


~11K SLoC