ara

Crates.ioara
lib.rsara
version0.1.1
sourcesrc
created_at2020-08-08 18:25:56.392824
updated_at2020-08-08 18:45:16.489121
descriptionAsync random access I/O traits
homepage
repositoryhttps://github.com/fasterthanlime/ara
max_upload_size
id274412
size37,498
Saif Eddin Gmati (azjezz)

documentation

README

ara

The ara crate provides traits for async random access I/O.

The ReadAt trait provides both an u64 length, and an async read_at method, thanks to async-trait. It is intended to be implemented for anything from in-memory buffers, to local files, to remote resources acessed over protocols like HTTP, FTP, etc.

ReadAtWrapper can be used to turn a type that implements GetReaderAt into a type that implements ReadAt.

BufReaderAt implements buffering on top of a ReadAt type. Whereas linear reads only need a single buffer, a ReadAt can be read at any offset, and thus a BufReaderAt caches "pages", with LRU (least-recently used) eviction.

Note that ara does not implement any of the traits for files, or HTTP resources. It exists purely to define an interface between resources, and consumers of those resources (like format readers, zip extractors, etc.).

License

This project is licensed under either of

at your option.

Commit count: 9

cargo fmt