libfw-core 0.1.0

Shared data structures, traits and protocol constants for libfw
Documentation

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());