Skip to content

BioJulia/BufIO.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BufIO.jl

Documentation Latest Release

BufIO is an alternative IO interface in Julia inspired by Rust, designed around exposing buffers to users for them to explicitly copying to and from. Compared to Base.IO, the interfaces in this package are generally:

  • Lower level
  • Faster
  • Easier to reason about
  • Better specified, with more well-defined semantics
  • Free from slow fallback methods that trash your performance

This package also provides a basic set of types which allows easy interoperation between Base.IO types the new buffered interface.

Comparison with other packages

BufferedStreams.jl

BufferedStreams.jl speeds up the existing Base.IO interface for unbuffered types by providing and internal buffer. However, the package does not provide an interface for reading/writing from the buffer directly, BufferedStreams also provide concrete types, but no abstract interface. Finally, it does not attempt to improve on the interface of Base.IO.

TranscodingStreams.jl

TranscodingStreams.jl provides buffering, but does so through a specific Buffer type instead of through an interface. It is also centered around transcoding and not IO in general. Its interface is both more complex and less documented than this package. Finally, it exposes the Base.IO interface instead of an alternative interface.

Questions?

If you have a question about contributing or using BioJulia software, come on over and chat to us on the Julia Slack workspace, or you can try the Bio category of the Julia discourse site.

About

Interface for efficient IO in Julia

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages