acid_io 0.1.0

A pared-down version of std::io usable with no_std
Documentation
# acid_io

A pared-down version of Rust's [`std::io`] usable in `no_std` contexts.

[`std::io`]: https://doc.rust-lang.org/std/io/index.html

---

Rust's `std::io` provides common interfaces that are used widely in the Rust
ecosystem for reading and writing data. However, as of 2022, these interfaces
are not available in `no_std` builds.

This crate provides drop-in replacements for the types and traits exposed by
`std::io` which can be used with `no_std`.

## Example

```rust
#![no_std]

use acid_io::{
    byteorder::{BE, LE, ReadBytesExt, WriteBytesExt},
    Cursor, Read, Seek, SeekFrom, Write,
};

let mut buf = [0u8; 10];
let mut curs = Cursor::new(&mut buf);

curs.write_u8(1)?;
curs.write_u16::<BE>(2)?;
curs.write_u32::<LE>(3)?;

curs.seek(SeekFrom::Start(0))?;

assert_eq!(curs.read_u8()?, 1);
assert_eq!(curs.read_u16::<BE>()?, 2);
assert_eq!(curs.read_u32::<LE>()?, 3);
```

## Feature flags

- `std`

  Replaces all items with re-exports of their counterparts in `std::io`. This
  effectively makes `acid_io` an alias of `std::io`, but missing any items that
  `acid_io` wouldn't otherwise provide.

- `alloc`

  Exposes `BufReader` and `BufWriter`, as well as those trait methods which
  take or return `Vec` or `String`.

- `byteorder`

  Exposes `acid_io::byteorder`, which contains implementations of
  `ReadBytesExt` and `WriteBytesExt` for `acid_io`'s `Read` and `Write` traits.
  Also re-exports the rest of `byteorder`.

## Acknowledgments

Much of this library is copied verbatim or with slight modifications from other
Rust projects:

- [The Rust Standard Library, `std`]https://github.com/rust-lang/rust
- [BurntSushi's `byteorder`]https://github.com/BurntSushi/byteorder

If you find this crate useful, please consider sponsoring members of the
[Library team] on GitHub.

[library team]: https://www.rust-lang.org/governance/teams/library

## License

Licensed under either of

- Apache License, Version 2.0
  ([LICENSE-APACHE]LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license
  ([LICENSE-MIT]LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

## Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.