-
Notifications
You must be signed in to change notification settings - Fork 280
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve the secp256k1 readme by: - Use a top level markdown header (level 1) - Add a link to the SECG's website (www.secg.org) - Add a link for `secp256k1` to bitcoin.it explaining the curve Improve the secp256k1-sys readme by: - Mirror secp256k1 readme badges, heading, docs link - Basic cleanup - Use 100 column width - Use backticks - Use capitals
- Loading branch information
Showing
2 changed files
with
50 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,50 @@ | ||
secp256k1-sys | ||
============= | ||
# secp256k1-sys | ||
|
||
[Full documentation](https://docs.rs/secp256k1_sys/) | ||
|
||
This crate provides Rust definitions for the FFI structures and methods. | ||
Provides low-level bindings to the C FFI exposed by [libsecp256k1](https://github.com/bitcoin-core/secp256k1). | ||
|
||
## Minimum Supported Rust Version | ||
|
||
This library should always compile with any combination of features on **Rust 1.48.0**. | ||
|
||
## 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_`. | ||
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. | ||
|
||
- 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 <rev> | ||
``` | ||
|
||
Where `<rev>` is the git revision of libsecp256k1 to checkout. If you do not | ||
specify a revision, the script will simply clone the repo and use whatever | ||
revision the default branch is pointing to. | ||
|
||
- Where `<rev>` is the git revision of `libsecp256k1` to checkout. If you do not specify a revision, | ||
the script will simply clone the repo and use whatever revision the default branch is pointing to. | ||
|
||
## Linking to external symbols | ||
|
||
If you want to compile this library without using the bundled symbols (which may | ||
be required for integration into other build systems), you can do so by adding | ||
`--cfg=rust_secp_no_symbol_renaming'` to your `RUSTFLAGS` variable. | ||
|
||
## Minimum Supported Rust Version | ||
|
||
This library should always compile with any combination of features on **Rust 1.48.0**. | ||
**Danger: doing this incorrectly may have catastrophic consequences!** | ||
|
||
This is mainly intended for applications consisting of various programming languages that intend to | ||
link the same library to save space, or bundles of multiple binaries coming from the same source. Do | ||
not use this to link to a random secp256k1 library you found in your OS! If you are packaging | ||
software that depends on `rust-secp256k1`, using this flag to link to another package, make sure you | ||
stay within the binary compatibility guarantees of that package. For example, in Debian if you need | ||
`libsecp256k1 1.2.3`, make sure your package requires a version strictly`>= 1.2.3 << 1.2.4`. Note | ||
also that unless you're packaging the library for an official repository you should prefix your | ||
package and the library with a string specific to you. E.g. if you have a set of packages called | ||
`my-awesome-packages` you should package `libsecp256k1` as `libmy-awesome-packages-secp256k1` and | ||
depend on that library/package name from your application. | ||
|
||
If you want to compile this library without using the bundled symbols (which may be required for | ||
integration into other build systems), you can do so by adding `--cfg=rust_secp_no_symbol_renaming'` | ||
to your `RUSTFLAGS` variable. |