A Series of projects to implement various Bitcoin protocols in Rust.
rust-bitcoin
hosts the bitcoin
crate that supports the
Bitcoin network protocol and associated primitives. It is designed for Rust programs built to work
with the Bitcoin network.
The "core" crates developed and maintained collectively by the rust-bitcoin
devs. There is a list
of official maintainers
for the bitcoin
crate, for other crates please see the git index to get an idea of who is who.
For these crates we hold ourselves to high standards relating to security, testing, release schedule, API design, and coding style. Our current focus is on stabilizing these crates1.
Name | Crate | Repository |
---|---|---|
base58 | base58ck | rust-bitcoin |
bitcoin | bitcoin | rust-bitcoin |
bitcoinconsensus | bitcoinconsensus | rust-bitcoinconsensus |
bech32 | bech32 | rust-bech32 |
hashes | bitcoin_hashes | rust-bitcoin |
hex | hex-conservative | hex-conservative |
internals | bitcoin-internals | rust-bitcoin |
io | bitcoin-io | rust-bitcoin |
ordered | ordered | rust-ordered |
secp256k1 | secp256k1 | rust-secp256k1 |
units | bitcoin-units | rust-bitcoin |
We aim to make usage of these crates secure, ergonomic, and intuitive. We try to enable users of these crates to follow software engineering best practices e.g., semver compliance.
If we fall short of these stated aims, or can in anyway improve our support of Bitcoin free software projects, please raise issues or contact maintainers directly. For security related issues please see SECURITY.md.
If you write proprietary software and want better integration with these crates by all means raise issues on the respective repository. We are interested in all users and your usecase may help us improve the libraries, however all development is done in the open and will stay that way.
Other crates/repositories hosted here and developed and maintained by the community.
These crates are developed and maintained by a subset of the rust-bitcoin
devs or other members of
the community. We are fairly open about hosting any Bitcoin-related crates in this organization, provided
that they are actively maintained. Other requirements are:
- The repository contains Bitcoin-specific crates (implies Bitcoin-only and not general purpose crates).
- The repository has at least minimal CI.
- The author has made at least some effort to adhere to practices and standards maintained in the core crates (defined above).
These crates may not be reviewed or maintained by the primary rust-bitcoin
maintainers. Keep this in
mind when choosing to use them as dependencies. And as with any dependencies, you should review new
versions rather than blindly upgrading.
Name | Crate | Repository |
---|---|---|
miniscript | miniscript | rust-miniscript |
bitcoind | bitcoind | bitcoind |
bitcoincore-rpc | bitcoincore-rpc | rust-bitcoincore-rpc |
bip39 | bip39 | rust-bip39 |
bip47 | bip47 | rust-bip47 |
bip322 | bip322 | bip322 |
murmel | murmel | murmel |
hammersbald | hammersbald | hammersbald |
bitcoin-bech32 | bitcoin-bech32 | rust-bech32-bitcoin |
corepc | corepc | corepc |
Repositories that are not crates (libraries).
Name | Repository | Description |
---|---|---|
maintainer-tools | rust-bitcoin-maintainer-tools | Scripts, test vectors, and other things used by or across multiple repositories in the rust-bitcoin ecosystem. |
website | rust-bitcoin.github.io | Source for the organization website https://rust-bitcoin.org |
workshop | workshop | Conference presentation material |
.github | .github | Hosts this readme file |
These crates have either been moved to another location or are no longer actively maintained.
Repository | Crate or Description |
---|---|
rust-wallet | Unmaintained bitcoin-wallet |
rust-bitcoin-chain | Unmaintained bitcoin-chain |
bitcoin_hashes | Moved to rust-bitcoin |
rust-lightning-invoice | Moved to rust-lightning |
www.rust-bitcoin.org | Moved to rust-bitcoin.github.io |
bitcoind-json-rpc-client | Unmaintained bitcoind-json-rpc-client |
bitcoind-json-rpc-regtest | Unmaintained bitcoind-json-rpc-regtest |
bitcoind-json-rpc-types | Unmaintained bitcoind-json-rpc-types |
Footnotes
-
Please note
internals
will explicitly never stabalize. ↩