# axio
[](https://crates.io/crates/axio)
[](https://docs.rs/axio)
[](https://github.com/arceos-org/axio/actions/workflows/ci.yml)
[`std::io`][1] for `no_std` environment.
[1]: https://doc.rust-lang.org/std/io/index.html
### Features
- **alloc**:
- Enables extra methods on `Read`: `read_to_end`, `read_to_string`.
- Enables extra methods on `BufRead`: `read_until`, `read_line`, `split`, `lines`.
- Enables implementations of axio traits for `alloc` types like `Vec<u8>`, `Box<T>`, etc.
- Enables `BufWriter::with_capacity`. (If `alloc` is disabled, only `BufWriter::new` is available.)
- Removes the capacity limit on `BufReader`. (If `alloc` is disabled, `BufReader::with_capacity` will panic if the capacity is larger than a fixed limit.)
### Differences to `std::io`
- Error types from `axerrno` instead of `std::io::Error`.
- No `IoSlice` and `*_vectored` APIs.
### Limitations
- Requires nightly Rust.
## License
Licensed under either of
- GNU General Public License v3.0 or later, (<https://www.gnu.org/licenses/gpl-3.0.html>)
- Apache License, Version 2.0, (<https://www.apache.org/licenses/LICENSE-2.0>)
- Mulan Permissive Software License, Version 2, (<https://license.coscl.org.cn/MulanPSL2>)
at your option.
---
Almost all of the code in this repository is a copy of the [Rust language codebase](https://github.com/rust-lang/rust) with minor modifications.
For attributions, see <https://thanks.rust-lang.org/>.