Skip to main content

vfsi_core/
lib.rs

1//! Protocol-neutral vectorized filesystem contracts for the VFSI workspace.
2//!
3//! [`Vfsi`] provides native vector execution; [`VfsiExt`] adds blanket scalar
4//! conveniences and composed workflows without replacing batching with loops.
5//! Portable requests, results, options, and imports live in [`api`].
6//! No filesystem backend, RPC library, or async runtime is required.
7//! The `vnfs` crate supplies NFS clients and re-exports these same contracts.
8//!
9//! ```no_run
10//! use vfsi_core::{Vfsi, VfsiExt};
11//! fn load_parts(fs: &impl Vfsi) -> vfsi_core::api::Result<Vec<Vec<u8>>> {
12//!     fs.read_files(&["/file-1", "/file-2"])
13//! }
14//! ```
15//!
16//! The other root types support backend implementation; application read/write
17//! operations should be imported from [`api`] rather than their backend counterparts.
18
19mod error;
20#[doc(hidden)]
21pub mod internal;
22pub mod path;
23mod types;
24
25pub use error::{RpcError, RpcResult, STATUS_TRANSPORT, TransportKind};
26pub use types::*;
27
28/// Portable application contracts, operations, options, and extension workflows.
29pub mod api;
30pub use api::{FileHandle, MetadataOperand, MetadataTarget, Vfsi, VfsiExt};