Custom fork of rust-bip39 with modifications for higher speed. Unsuitable for production.
Go to file
Christian Reitter 780672c487 Clarify maintenance status 2025-06-29 19:32:08 +02:00
.github/workflows Add github actions files for CI 2023-02-27 21:16:26 +00:00
benches Add Portuguese language support 2023-10-13 15:05:49 -03:00
contrib chore: add Cargo-minimal.lock 2025-06-10 15:24:58 +02:00
src Optimize expensive BIP39 seed generation 2025-06-29 19:27:49 +02:00
.editorconfig Fix .editorconfig indent style 2023-03-13 11:46:34 +01:00
.gitignore First version, with static references 2020-06-07 00:46:54 +01:00
.rustfmt.toml Add .rustfmt.toml 2021-03-24 22:19:13 +00:00
CHANGELOG.md Release v2.2.0 2025-06-15 19:33:10 +01:00
Cargo-minimal.lock Release v2.2.0 2025-06-15 19:33:10 +01:00
Cargo.toml Add required dependencies, formatting 2025-06-29 19:25:24 +02:00
LICENSE First version, with static references 2020-06-07 00:46:54 +01:00
README.md Clarify maintenance status 2025-06-29 19:32:08 +02:00

README.md

bip39

A Rust implementation of BIP-39 mnemonic codes.

Unsafe Fast Fork

DO NOT USE THIS LIBRARY

This is an experimental fork with extreme changes that intentionally break important security mechanisms and functionality in favor of speed for certain security research workloads.

The forked library version is completely unsuitable for any type of production use and receives no support or maintenance of any kind. It is published primarily as a reference for other researchers. You have been warned.

The original documentation content and other references are kept as-is to limit the repository differences to upstream. However, be aware that none of the contact information, usage guidance or security guarantees still applies since this is an experimental fork of the project.

At the time of writing, the changes are still compatible and cargo test works, but future changes may be more invasive.


Word lists (languages)

We support all languages specified in the BIP-39 standard as of writing.

The English language is always loaded and other languages can be loaded using the corresponding feature.

Use the all-languages feature to enable all languages.

  • English (always enabled)
  • Simplified Chinese (chinese-simplified)
  • Traditional Chinese (chinese-traditional)
  • Czech (czech)
  • French (french)
  • Italian (italian)
  • Japanese (japanese)
  • Korean (korean)
  • Portuguese (portuguese)
  • Spanish (spanish)

MSRV

This crate supports Rust v1.41.1 and up and works with no_std.

The bitcoin_hashes range dependency effects the MSRV as follows

  • bitcoin_hashes v0.12: MSRV v1.41.1
  • bitcoin_hashes v0.13: MSRV v1.48.0

When using older version of Rust, you might have to pin the versions of several crates, for an up-to-date list refer to contrib/test.sh:

cargo update --package "bitcoin_hashes" --precise "0.12.0"
cargo update --package "rand" --precise "0.6.0"
cargo update --package "libc" --precise "0.2.151"
cargo update --package "tinyvec" --precise "1.6.0"
cargo update --package "unicode-normalization" --precise "0.1.22"

If you enable the zeroize feature the MSRV becomes 1.51.