A set of traits that abstract file interactions to enable better testability and flexibility.
This crate allows Rust developers to write code that typically operates on files, but can instead operate against another data structure. For example, this crate offers two implementations:
StdFileManager
: AFileManager
implementation powered bystd::fs
.MemoryFileManager
: AFileManager
implementation that is powered fully by in-memory structures.
This common abstraction layer is being adopted into OkayWAL, Sediment, Nebari, and eventually BonsaiDb, allowing the entire stack to support both file-based and in-memory databases.