Expand description
Range oriented data sources for iris.
A decoder declares the byte ranges it needs and the host serves them. That inversion is what lets the same decoder run against a local file, a page cache, and an object store.
What exists so far is Window, the sliding file view the host maps ranges through. The
RangeSource trait it will sit behind, and the object store implementation of it, belong to a
later milestone. See docs/ROADMAP.md.
§Unsafe code
This is the one crate in the workspace that has any. Reserving address space and mapping a file
into part of it is not expressible without it, and the alternative to writing it here is writing
it in the crate that runs the sandbox, which is the last place it should be. Every other crate
carries #![forbid(unsafe_code)] and keeps it.
All of it is in window and its platform modules, every block carries a comment saying why it
is sound, and the stress test in tests/window.rs runs thousands of remap cycles on all four
supported platforms on every change.
Re-exports§
pub use window::DEFAULT_SPAN;pub use window::Window;pub use window::WindowError;
Modules§
- window
- A file view that slides inside a fixed reservation of address space.
Constants§
- VERSION
- The version of this crate, as reported by build metadata.