Expand description
The OS abstraction layer: graphitesql’s only I/O boundary.
Everything the engine does to durable storage goes through the Vfs and
File traits, exactly as SQLite routes all I/O through its sqlite3_vfs.
This is what lets the same engine run against in-memory storage, real files,
or a host-provided WebAssembly backend without changing a line above this
layer.
Two implementations ship in the crate:
memory::MemoryVfs—Vec<u8>-backed, always available (incl.no_stdand wasm). Backs:memory:and is the default for tests.std_file::StdVfs— real files viastd::fs(featurestd).
Positioned reads/writes (*_at) are used throughout rather than a stateful
cursor, mirroring pread/pwrite; this keeps the pager’s intent explicit
and avoids a shared seek offset.
Modules§
- memory
- An in-memory
Vfsbacked byVec<u8>buffers. - std_
file std - A
Vfsbacked by real files viastd::fs(featurestd).
Structs§
- Open
Flags - How a database file should be opened.
Enums§
- Lock
Level - File lock levels, matching SQLite’s locking model.