secp256k1-sys
FFI for Pieter Wuille's `libsecp256k1` library.
0.13.0
70M downloads/mo
#1000 most downloaded on crates.io
rust-bitcoin/rust-secp256k1
What this package is like to depend on
Last release 6 months ago
28 Jan 2026
Ships fairly regularly
a new release about every 3 months
Some releases are documented
notes for 12 of 23 stable releases
2 versions withdrawn
withdrawn after publishing
7 years old
25 releases · first in 2019
2 releases in the last 12 months
see the full history below
Release timeline
25 releases · Dec 2019 to Jan 2026Releases
latest 25-
0.13.028 Jan 2026Release notes
Open source →- Update minimum supported rust compiler 1.22.
- Replace
serialize_derfunction withSerializedSignaturestruct. - Allow building without a standard library (
no_std).stdfeature is on by default. - Add human readable serialization to
SignaturesandSecretKeys. - Stop displaying 0 bytes if a
Signatureis less than 72 bytes. - Only compile recovery module if feature
recoveryis set (non-default). - Update
randdependency from 0.4 to 0.6 and addrand_core0.4 dependency. - Relax
ccdependency requirements.
-
0.12.014 Oct 2025Release notes
Open source →- Overhaul API to remove context object when no precomputation is needed
- Add
ThirtyTwoByteHashtrait which allows infallible conversions toMessages - Disallow 0-valued
Messageobjects since signatures on them are forgeable for all keys - Remove
ops::Indeximplementations forSignature - Remove depecated constants and unsafe
ZERO_KEYconstant
-
0.11.026 Apr 2025Release notes
Open source →- Update
randto 0.4 andgcc0.3 tocc1.0. (rand0.5 exists but has a lot of breaking changes and no longer compiles with 1.14.0.) - Remove
PublicKey::combinefrom API since it cannot be used with anything else in the API - Detect whether 64-bit compilation is possible, and do it if we can (big performance improvement)
- Update
-
0.10.111 Sep 2024Nothing published for this version
-
0.10.002 Apr 2024Release notes
Open source →- A complete API overhaul to move many runtime errors into compiletime errors
- Update libsecp256k1 to
1e6f1f5ad5e7f1e3ef79313ec02023902bf8. Should be no visible changes. - Remove
PublicKey::new()andPublicKey::is_valid()sincenewwas unsafe and it should now be impossible to create invalidPublicKeyobjects through the API - Reintroduce serde support behind a feature gate using serde 1.0
- Clean up build process and various typos
-
0.9.203 Jan 2024 -
0.9.106 Dec 2023 withdrawn -
0.9.009 Oct 2023 withdrawn -
0.8.208 Jul 2025Nothing published for this version
-
0.8.117 Mar 2023 -
0.8.015 Jan 2023 -
0.7.012 Dec 2022Release notes
Open source →- Make comparison functions stable across library versions
- Add public methods
cmp_fast_unstableandeq_fast_unstablefor types that contain an inner array (see PR linked above).
-
0.6.112 Oct 2022Nothing published for this version
-
0.6.022 Jun 2022 -
0.5.210 May 2022Nothing published for this version
-
0.5.104 May 2022 -
0.5.009 Mar 2022Nothing published for this version
-
0.4.205 Jan 2022Nothing published for this version
-
0.4.121 Jun 2021Nothing published for this version
-
0.4.003 Jan 2021Nothing published for this version
-
0.3.027 Aug 2020 -
0.2.026 Aug 2020Release notes
Open source →- Update upstream to
670cdd3f8be25f81472b2d16dcd228b0d24a5c45 - Add missing return
c_inttoNonceFn - Got wasm support working again
- Removed
ccrestriction, rustc 1.22 support now requires some downstream effort - Exposed a reference to the underlying byte array for all byte-array-wrapping types
- Allow all-zeroes
Messageto be constructed - Expose
secp256k1_ec_pubkey_negatefrom upstream
- Update upstream to
-
0.1.209 Jan 2020Nothing published for this version
-
0.1.111 Dec 2019Nothing published for this version
-
0.1.010 Dec 2019Nothing published for this version