rust-bitcoin-unsafe-fast/base58
merge-script 59524adafd
Merge rust-bitcoin/rust-bitcoin#4295: Automated nightly rustfmt (2025-03-30)
b8910e201e 2025-03-30 automated rustfmt nightly (Fmt Bot)

Pull request description:

  Automated nightly `rustfmt` changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action

ACKs for top commit:
  apoelstra:
    ACK b8910e201ea4374bb0508aa50c6779d080ef6484; successfully ran local tests

Tree-SHA512: 9bd89439304322d30e04aae8f9803f9e07830b616cb49339ac4b1e0ee1bfe440865d9ebc7f41eea1bcd35cb751060215eec20d258d88e9f20dd3f905b9ab690f
2025-03-30 19:37:31 +00:00
..
contrib Add/fix alloc features 2024-07-11 10:14:50 +10:00
src Merge rust-bitcoin/rust-bitcoin#4295: Automated nightly rustfmt (2025-03-30) 2025-03-30 19:37:31 +00:00
CHANGELOG.md base58ck: Bump version to 0.2.0 2024-12-10 13:47:29 +11:00
Cargo.toml refactor: use path dependencies for workspace members in bitcoin/Cargo.toml 2025-03-27 12:55:16 +08:00
README.md docs: fix LICENCE link 2025-03-23 11:41:07 +00:00

README.md

Bitcoin base58 encoding

This crate provides encoding and decoding of base58 strings as defined by the Bitcoin ecosystem including the checksum.

There are a bunch of crates on crates.io that implement base58 encoding and decoding. The more obviously named ones differ from this crate because:

  1. bitcoin-base58 is transpiled from the C++ code in Bitcoin Core as part of a large long-term transpilation project, whereas this crate is a pure Rust implementation intended to be production-ready and to provide an Rust-idiomatic API.

  2. base58 implements parsing but does not validate checksums (see base58check). It may be appropriate in cases where performance is more important than safety. Appears unmaintained.

  3. base58check Adds checksum to the base58 crate and depends on sha2 for hashing. Appears unmaintained.

This crate uses bitcoin_hashes when hashing to calculate the checksum.

Minimum Supported Rust Version (MSRV)

This library should always compile with any combination of features on Rust 1.63.0.

Licensing

The code in this project is licensed under the Creative Commons CC0 1.0 Universal license. We use the SPDX license list and SPDX IDs.