|0.2.1||Oct 11, 2020|
|0.2.0||Oct 11, 2020|
|0.1.1||Oct 10, 2020|
|0.1.0||Oct 10, 2020|
#63 in No standard library
Used in fastvlq
Ever wanted a
no_std? Well now you can have it. A 'fork' of Rust's
std::io module for
with the added benefit of not needing
The goal of this crate is to provide a stable interface for building I/O trait functionality in
no_std environments. The current code corresponds to the most recent stable API of Rust 1.47.0.
It is also a goal to achieve a true alloc-less experience, with opt-in alloc support.
This crate works on
stable with some limitations in functionality, and
nightly without limitations by adding
the relevant feature flag.
This crate is
no_std by default — you must opt into enabling
std if required.
[dependencies] bare-io = "0.2"
Add the crate, use the things you would usually want from
std::io, but instead from
- std: enables
stdpass-throughs for the polyfilled types, but allows accessing the new types
- alloc: enable aspects of the
Writetraits that require
- nightly: enables nightly-only features, such as
BufWriterwith const generic buffers.
- nightly-std: enables
stdwith nightly-only features
std::io::Error, so we have our own copy without any
*_vectoredfamily of functions are not implemented.
BufWriterhave a different signature, as they now use a const generic bounded array for the internal buffer. (Requires nightly feature)
Other than items perhaps being entirely missing or certain functions unavailable on some traits, no function signatures have been changed.
- Using the buffer types currently requires nightly due to the use of const generics.
copyor the buffer types with
stdsupport currently requires nightly due to the
All of the below are works in progress, but should help with demonstrating how to use this crate.
- fastvlq: variable-length
u64type with no-std reader support with
- byteorder_bare-io: personal fork of
- zstd-rs: personal fork of
zstdcrate to demonstrate
bare-ioin a more complex setting
- comde: do compression/decompression similarly to how one might use
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Almost all of the code in this repository is a copy of the Rust language codebase with minor modifications.
For attributions, see https://thanks.rust-lang.org/.