Recently we re-wrote CI to increase VM level parallelism, in hindsite this has proved to be not that great because: - It resulted in approx 180 jobs - We are on free tier so only get 20 jobs (VMs) at a time so its slow to run - The UI is annoying to dig through the long job list to find failures Have another go at organising the jobs with the main aim of shortening total run time and making it easier to quickly see fails. Re-write the `run_task.sh` script, notable moving manifest handling to the workflow. Also don't bother testing with beta toolchain. WASM Note Removes the `cdylib` and `rlib` from the manifest patching during wasm build - I do not know the following: - Why this breaks on this PR but not on other PRs - Why I can't get wasm test to run locally on master but PRs are passing - What the `cdylib` and `rlib` were meant to be doing This is the docs from: https://doc.rust-lang.org/reference/linkage.html * --crate-type=cdylib, #![crate_type = "cdylib"] - A dynamic system library will be produced. This is used when compiling a dynamic library to be loaded from another language. This output type will create *.so files on Linux, *.dylib files on macOS, and *.dll files on Windows. * --crate-type=rlib, #![crate_type = "rlib"] - A "Rust library" file will be produced. This is used as an intermediate artifact and can be thought of as a "static Rust library". These rlib files, unlike staticlib files, are interpreted by the compiler in future linkage. This essentially means that rustc will look for metadata in rlib files like it looks for metadata in dynamic libraries. This form of output is used to produce statically linked executables as well as staticlib outputs. |
||
---|---|---|
.. | ||
contrib | ||
src | ||
CHANGELOG.md | ||
Cargo.toml | ||
README.md |
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:
-
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.
-
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. -
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.56.1.
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.