rust-bitcoin-unsafe-fast/bitcoin/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
..
address Update bech32 dependency 2023-10-10 06:47:58 +11:00
blockdata Remove code deprecated since v0.31.0 2023-11-04 12:14:54 +11:00
consensus Remove code deprecated since v0.31.0 2023-11-04 12:14:54 +11:00
crypto Remove code deprecated since v0.31.0 2023-11-04 12:14:54 +11:00
merkle_tree Merge rust-bitcoin/rust-bitcoin#1986: Remove private hex test macro 2023-10-06 22:14:12 +00:00
p2p Merge rust-bitcoin/rust-bitcoin#1986: Remove private hex test macro 2023-10-06 22:14:12 +00:00
psbt Remove stale comment and map_err 2023-10-16 14:48:14 +02:00
amount.rs Remove code deprecated since v0.31.0 2023-11-04 12:14:54 +11:00
base58.rs Merge rust-bitcoin/rust-bitcoin#1986: Remove private hex test macro 2023-10-06 22:14:12 +00:00
bip32.rs Upgrade the secp dependency 2023-10-10 10:04:31 +11:00
bip152.rs Make error types uniform 2023-10-04 15:15:52 +11:00
bip158.rs Merge rust-bitcoin/rust-bitcoin#1986: Remove private hex test macro 2023-10-06 22:14:12 +00:00
error.rs Remove impl_std_error macro 2023-10-04 15:15:34 +11:00
hash_types.rs Move XpubIdentifier to the bip32 module 2023-09-04 02:13:55 +10:00
internal_macros.rs Remove private hex test macro 2023-09-30 06:22:52 +10:00
lib.rs Add a `bitcoin_io` crate 2023-11-07 05:50:42 +00:00
network.rs Make error types uniform 2023-10-04 15:15:52 +11:00
parse.rs Make error types uniform 2023-10-04 15:15:52 +11:00
policy.rs bitcoin: Remove attribution from all files 2023-05-01 09:22:48 +10:00
pow.rs Remove code deprecated since v0.31.0 2023-11-04 12:14:54 +11:00
serde_utils.rs Depend on hex-conservative 2023-07-21 10:59:46 +10:00
sign_message.rs Use Message::from_digest 2023-10-11 08:16:25 +11:00
string.rs Make error types uniform 2023-10-04 15:15:52 +11:00
taproot.rs Remove code deprecated since v0.31.0 2023-11-04 12:14:54 +11:00
test_macros.rs bitcoin: Remove attribution from all files 2023-05-01 09:22:48 +10:00