rust-bitcoin-unsafe-fast/hashes/src
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
..
cmp.rs hashes: Introduce SPDX license identifiers 2023-05-01 09:26:36 +10:00
hash160.rs Improve hashes::Error 2023-05-25 13:25:13 +10:00
hmac.rs Improve hashes::Error 2023-05-25 13:25:13 +10:00
impls.rs Depend on hex-conservative 2023-07-21 10:59:46 +10:00
internal_macros.rs Depend on hex-conservative 2023-07-21 10:59:46 +10:00
lib.rs Add a `bitcoin_io` crate 2023-11-07 05:50:42 +00:00
ripemd160.rs Introduce the `small-hash` feature for `bitcoin_hashes` 2023-08-16 14:19:17 +02:00
serde_macros.rs Remove docsrs attributes 2023-07-14 14:59:11 +10:00
sha1.rs Improve hashes::Error 2023-05-25 13:25:13 +10:00
sha256.rs Merge rust-bitcoin/rust-bitcoin#1990: Introduce the `small-hash` feature for `bitcoin_hashes` 2023-08-17 16:34:10 +00:00
sha256d.rs Improve hashes::Error 2023-05-25 13:25:13 +10:00
sha256t.rs Clear incorrect implementation of clone warning 2023-08-25 12:08:56 +10:00
sha512.rs Use hash_type macro for sha512::Hash 2023-11-03 10:18:24 +11:00
sha512_256.rs Move sha512_256 code 2023-11-03 10:35:56 +11:00
siphash24.rs Improve hashes::Error 2023-05-25 13:25:13 +10:00
util.rs Merge rust-bitcoin/rust-bitcoin#1933: Fix links in docs 2023-08-02 16:37:13 +02:00