Shared data structures, traits, protocol constants and streaming compression abstractions for the libfw transfer library.
libfw-core is the foundation crate consumed by both
libfw-server (server routing /
middleware) and libfw-client (WASM
engine + JS SDK). It contains no I/O of its own: it defines the contracts.
Highlights
- [
TokenClaims], [Action] and the [Validator] trait for fine-grained bearer-token authorization. - [
StorageBackend] and [UploadSink] traits for pluggable storage. - [
Compressor] / [Decompressor] streaming traits backed by [zrip] (zstd) with constant-memory guarantees. - Protocol constants: [
CHUNK_SIZE], [HEADER_COMPRESS], [HEADER_FILE_META] and friends. - Transfer metadata ([
FileMeta], [TransferPlan], [ChunkMeta]).
Example
use libfw_core::auth::{Action, PathValidator, Validator};
use libfw_core::claims::{TokenClaims, Permission};
let claims = TokenClaims {
sub: "user-42".into(),
exp: None,
permissions: vec![Permission::Read, Permission::Write],
allowed_paths: vec!["/docs/".into()],
};
let validator = PathValidator::new();
assert!(validator.validate(&claims, "/docs/spec.pdf", Action::Read).is_ok());