Merge rust-bitcoin/rust-bitcoin#2252: io: Simplify crate docs and add README

d480adaf25 io: Simplify crate docs and add README (Tobin C. Harding)

Pull request description:

  Simplify the docs in `lib.rs` and copy them into a minimal README file.

ACKs for top commit:
  apoelstra:
    ACK d480adaf25
  Kixunil:
    ACK d480adaf25

Tree-SHA512: 17b6bed688854f9b0cafa0a0320683e75cf0d8f190a4f526d982292c0ae0e4834e4f239e451a1ded124d44d6f0c8f248893eeb27f0a7a5a0b97a757515f732ee
This commit is contained in:
Andrew Poelstra 2024-01-15 17:59:03 +00:00
commit 8f1dabb4d7
No known key found for this signature in database
GPG Key ID: C588D63CE41B97C1
2 changed files with 15 additions and 10 deletions

10
io/README.md Normal file
View File

@ -0,0 +1,10 @@
Rust-Bitcoin IO Library
=======================
The `std::io` module is not exposed in `no-std` Rust so building `no-std` applications which require
reading and writing objects via standard traits is not generally possible. Thus, this library exists
to export a minmal version of `std::io`'s traits which we use in `rust-bitcoin` so that we can
support `no-std` applications.
These traits are not one-for-one drop-ins, but are as close as possible while still implementing
`std::io`'s traits without unnecessary complexity.

View File

@ -1,16 +1,11 @@
//! Rust-Bitcoin IO Library
//!
//! Because the core `std::io` module is not yet exposed in `no-std` Rust, building `no-std`
//! applications which require reading and writing objects via standard traits is not generally
//! possible. While there is ongoing work to improve this situation, this module is not likely to
//! be available for applications with broad rustc version support for some time.
//! The `std::io` module is not exposed in `no-std` Rust so building `no-std` applications which
//! require reading and writing objects via standard traits is not generally possible. Thus, this
//! library exists to export a minmal version of `std::io`'s traits which we use in `rust-bitcoin`
//! so that we can support `no-std` applications.
//!
//! Thus, this library exists to export a minmal version of `std::io`'s traits which `no-std`
//! applications may need. With the `std` feature, these traits are also implemented for the
//! `std::io` traits, allowing standard objects to be used wherever the traits from this crate are
//! required.
//!
//! This traits are not one-for-one drop-ins, but are as close as possible while still implementing
//! These traits are not one-for-one drop-ins, but are as close as possible while still implementing
//! `std::io`'s traits without unnecessary complexity.
#![cfg_attr(not(feature = "std"), no_std)]