Skip to main content

Crate fxcp_core

Crate fxcp_core 

Source
Expand description

Core copy engine shared by fxcp and foxingd. Provides SmartCopier (io_uring), BLAKE3 Merkle hashing, xattr/sidecar metadata, and adaptive I/O strategies.

Re-exports§

pub use error::FxcpError;
pub use error::CopyErrorKind;
pub use error::Result;

Modules§

browser
Midnight Commander-inspired TUI for browsing filesystems and snapshots. Midnight Commander-inspired TUI for browsing filesystems, snapshots, and .fxar archives. Feature-gated behind tui.
buffer
Memory-aligned buffer pool for io_uring fixed-buffer operations. Memory-aligned buffer pool for io_uring fixed-buffer operations. Provides pinned, aligned allocations that can be registered with the kernel.
cas_store
Content-addressable chunk store with crash-safe atomic writes. Content-addressable storage (CAS) directory for foxing replication targets.
chunk_delta
Content-defined chunk diff algorithm for delta transfer. Content-defined chunk diff algorithm.
chunk_transport
Chunk-level I/O abstraction for delta upsert across transport underlays. Chunk-level I/O abstraction for delta upsert across transport underlays.
chunker
Gear-hash variable-size content-defined chunking for FXAR v2 archives. Variable-size content-defined chunking via gear hash. Produces content-determined chunk boundaries that are stable across insertions/deletions, enabling high deduplication ratios.
cid
BLAKE3 multicodec CID encoding for content-addressed interoperability. BLAKE3 multicodec CID encoding for content-addressed interoperability.
consistency
Crash consistency subsystem – WAL, event journal, and sequence generation. Crash consistency subsystem providing write-ahead logging, event journaling, and monotonic sequence generation.
constants
Compile-time and runtime constants for tuning, timeouts, and thresholds. Compile-time and runtime constants for foxing subsystems. Includes worker tuning, retry limits, buffer sizes, and feature flags.
error
Error types – FxcpError, CopyErrorKind, and Result alias. Error types for the fxcp-core copy engine.
filter
Path filtering with include/exclude glob patterns. Path filtering with include/exclude patterns.
fmt
Shared formatting utilities for human-readable byte sizes. Shared formatting utilities for human-readable output.
fsverity
fs-verity integration for tamper-evident snapshot sealing. fs-verity integration for tamper-evident snapshot sealing.
fxar
FXAR v2 archive format – gear-hash chunking, BLAKE3 CAS, binary index. FXAR v2: variable-size gear-hash chunking + BLAKE3 CAS + binary index. Replaces v1’s tar+whole-file-dedup with true chunk-level deduplication.
fxar_remote
Remote FXAR access – open archives from local path or S3 URI for update. Remote FXAR access – open an FXAR archive from a local path or S3 URI for in-place update via the tail-rewrite engine.
governor
PSI-based system stress management with QoS floor. PSI-based system stress management with QoS floor.
hashing
BLAKE3 Merkle tree construction, adaptive chunk sizing, and directory hashing. BLAKE3 hashing, Merkle tree, delta detection, directory hashing.
merkle_index
Per-target consolidated Merkle signature index for large files (>256MB). Stores large Merkle signatures that exceed the 64KB xattr limit in a consolidated per-target index file at <target>/.foxing_meta/merkle.db.
metrics
Prometheus metric counters and gauges for copy operations and I/O stats. Prometheus metric counters and gauges for copy operations, I/O stats, and storage detection results.
mount_info
Unified mount enumeration via statmount(2) with /proc/self/mountinfo fallback. Unified mount enumeration API.
nfs
Userspace NFSv4.2 compound RPC client bypassing VFS per-file overhead. Userspace NFSv4.2 compound RPC client for bypassing VFS per-file overhead.
operations
io_uring pipeline, reflink/CoW, sendfile, and copy tier selection. SmartCopier, io_uring pipeline, reflink/CoW.
qcow2
Pure-Rust qcow2 metadata parser for format-aware replication optimization. Pure-Rust qcow2 metadata parser for format-aware replication optimization.
security
Metadata sync, permissions, ownership, ACL, and xattr operations. Metadata sync, permissions, ownership, xattr operations.
sidecar
xattr/sidecar metadata – SyncSignature, dirty flags, JSON fallback. Xattr/sidecar metadata – SyncSignature, MerkleSignature, dir_hash.
stratis
Stratis D-Bus integration for pool-aware replication and snapshots. Stratis D-Bus integration for pool-aware replication.
sync
Shared copy/sync engine – recursive directory copy, delta sync, stdin pipe. Shared copy/sync engine used by both fxcp CLI and foxingd sync command.
tombstone
Append-only JSONL tombstone journal for delete propagation across restarts. Append-only JSONL journal recording file/directory deletions.
version_store
Hybrid point-in-time version store with JSON manifest and browsable trees. Hybrid point-in-time + per-file version store with JSON manifest. Wraps the core versioning engine to provide human-readable naming, dirvish-style browsable tree snapshots, and machine-readable indexes.
versioning
MARS reflink snapshots with epoch-based version management and retention. Mirror & Archive Recovery System (MARS) – zero-cost reflink snapshots with epoch-based version management and retention policies.