rust-bitcoin-unsafe-fast/hashes/extended_tests/schemars
Matt Corallo 27c7c4e26a Add a `bitcoin_io` crate
In order to support standard (de)serialization of structs, the
`rust-bitcoin` ecosystem uses the standard `std::io::{Read,Write}`
traits. This works great for environments with `std`, however sadly
the `std::io` module has not yet been added to the `core` crate.

Thus, in `no-std`, the `rust-bitcoin` ecosystem has historically
used the `core2` crate to provide copies of the `std::io` module
without any major dependencies. Sadly, its one dependency,
`memchr`, recently broke our MSRV.

Worse, because we didn't want to take on any excess dependencies
for `std` builds, `rust-bitcoin` has had to have
mutually-exclusive `std` and `no-std` builds. This breaks general
assumptions about how features work in Rust, causing substantial
pain for applications far downstream of `rust-bitcoin` crates.

Here, we add a new `bitcoin_io` crate, making it an unconditional
dependency and using its `io` module in the in-repository crates
in place of `std::io` and `core2::io`. As it is not substantial
additional code, the `hashes` io implementations are no longer
feature-gated.

This doesn't actually accomplish anything on its own, only adding
the new crate which still depends on `core2`.
2023-11-07 05:50:42 +00:00
..
src Make `sha256t_hash_newtype!` evocative of the output. 2023-04-02 17:00:52 +02:00
Cargo.toml Add a `bitcoin_io` crate 2023-11-07 05:50:42 +00:00
README.md schemars: Add pinning docs 2023-07-18 10:27:48 +10:00

README.md

Test crate for the schemars feature

Run as usual with cargo test.

Minimum Supported Rust Version (MSRV)

To run the tests with the MSRV you will need to pin serde:

  • cargo update -p serde --precise 1.0.156
  • cargo update -p regex --precise 1.7.3
  • cargo update -p chrono --precise 0.4.24