Skip to main content

Crate iris_source

Crate iris_source 

Source
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.