Skip to content

raldone01/no_std_io_rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

no_std_io

Features of this crate:

  • A no_std + alloc optimized reimplementation of the streaming infrastructure of std::io.
  • Custom Read and Write traits that support user defined error types.

Extended streams

CompressedReader and CompressedWriter

  • Fully no_std + alloc compatible.
  • A usable streaming frontend API for the miniz_oxide crate.
  • Supports concatenated gzip, zlib and raw deflate streams.
  • Supports auto detection of gzip, zlib, raw deflate, uncompressed streams.

Tar Parser

  • Fully no_std + alloc compatible.
  • A streaming implementation that implements the Write trait.
  • Supports all common tar formats: ustar, v7, pax, and gnu.
  • It is very forgiving and strives to limit panics and resource exhaustion attacks.
  • Most commonly used metadata is preserved.

Tar Creator

  • Creates tarballs using the pax format.
  • Writing the gnu sparse 1.0 format is also supported.

TODO crate:

  • Add std feature to enable std::io compatibility.
  • Add more impls for Rc Arc and Mutex for std feature for Read and Write traits.
  • Add parking lot feature to enable more impls for Read and Write traits.
  • After maturing enough move no_std_io to its own crate.
  • Add feature to opt in to time dependency.
  • Fix clippy lints
  • Add alloc feature
  • Add doc comments with examples to all public functions and structs.
  • Add audit log to tar parser to track spec violations
  • Write a tar fuzzer

TODO no_std_io:

TODO tar:

TODO (long term):

  • Add filesystem trait and filesystem agnostic file api. (Default ship a memory based implementation serialize to tar_gz and extract from tar_gz.)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published