Expand description
Re-exports§
pub use options::AttributeInclusion;pub use v0::AdvanceRetentionRequest;pub use v0::AdvanceRetentionResponse;pub use v0::ApiError;pub use v0::AttributesProjection;pub use v0::Checkpoint;pub use v0::CheckpointOwnerSummary;pub use v0::Commit;pub use v0::CommitPrecondition;pub use v0::CommitRequest;pub use v0::CreateCheckpointRequest;pub use v0::CreateNamespaceRequest;pub use v0::CreateSnapshotRequest;pub use v0::DeleteCheckpointResponse;pub use v0::DeleteDirectoryBehavior;pub use v0::DeleteNamespaceResponse;pub use v0::DeleteSnapshotResponse;pub use v0::DeletedCheckpointsByOwner;pub use v0::DeletedObjectCounts;pub use v0::DestinationBehavior;pub use v0::DestinationPrecondition;pub use v0::DestinationPreconditionError;pub use v0::ErrorDetails;pub use v0::ExpectedFileState;pub use v0::ExtendSnapshotRequest;pub use v0::FileBytes;pub use v0::FileRevision;pub use v0::FilesystemOperation;pub use v0::FlushWalOutcome;pub use v0::FlushWalResponse;pub use v0::ForkNamespaceRequest;pub use v0::GcRequest;pub use v0::GcResponse;pub use v0::GrepMatch;pub use v0::GrepRequest;pub use v0::GrepResponse;pub use v0::ListCheckpointsResponse;pub use v0::ListFileRevisionsResponse;pub use v0::ListInodeChildrenResponse;pub use v0::ListPathEntriesResponse;pub use v0::ListSnapshotsResponse;pub use v0::ListTrashResponse;pub use v0::MetadataCompactionOutcome;pub use v0::MetadataCompactionRequest;pub use v0::MetadataCompactionResponse;pub use v0::MetadataMaintenanceRequest;pub use v0::MetadataMaintenanceResponse;pub use v0::Namespace;pub use v0::NamespaceAccessMode;pub use v0::NamespaceDiagnostics;pub use v0::NamespaceForkBasis;pub use v0::PathEntry;pub use v0::PathEntryKind;pub use v0::PreconditionFields;pub use v0::RecoverAdministratorRequest;pub use v0::RecoverAdministratorResponse;pub use v0::ReorganizeStepOutcome;pub use v0::RetainedCandidates;pub use v0::RetainedReason;pub use v0::RunMaintenanceRequest;pub use v0::RunMaintenanceResponse;pub use v0::SnapshotSummary;pub use v0::TrashEntry;pub use v0::WalFlushStepOutcome;
Modules§
- env
- Environment variables used by more than one LoonFS process.
- options
- Per-operation options shared by the embedded runtime and HTTP client.
- public_
inode_ id - Converts inode IDs between internal numbers and public API strings.
- v0
- Request and response shapes for the v0 HTTP API.
- wire
- Durable wire formats grouped by their owning format family.
Structs§
- Absolute
Path - Canonical absolute path plus its parsed components.
- Access
Grants - A validated map from principal to rights, limited to
MAX_ACCESS_GRANT_ENTRIESentries andMAX_ACCESS_GRANTS_PRINCIPAL_BYTESbytes of principal ids. No entry has an empty set of rights. Decoding rejects repeated principals. - Access
Revision No - Monotonic per-inode access revision.
- Access
Rights - A set of rights. Encoded as distinct names in
read,history,write,create,remove,share,manage,adminorder. Decoding accepts any order and rejects repeated names. - ActorId
- A validated actor identifier supplied by the application.
- Actor
IdValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Attribute
Key - A validated inode attribute name from 1 to 128 UTF-8 bytes without control characters.
- Attribute
KeyValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Attribute
Revision No - The revision number for an inode’s attribute map.
- Attribute
Value - A validated inode attribute value of at most
MAX_ATTRIBUTE_VALUE_BYTESUTF-8 bytes. - Attribute
Value Validation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Attributes
- A validated attribute map limited to
MAX_ATTRIBUTE_ENTRIESentries andMAX_ATTRIBUTES_TOTAL_BYTEStotal key and value UTF-8 bytes. - Binding
Generation - Opaque token identifying one parent and name binding generation.
- Binding
Generation Validation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Capability
Document - The API groups, features, and limits advertised by a deployment.
- Change
Seq - Sequence number assigned to a namespace commit.
- Checkpoint
Id - Durable checkpoint identifier.
- Checksum
- A checksum algorithm and its canonical lowercase hexadecimal value.
- Commit
Fingerprint - The semantic identity of one mutation request.
- Commit
Id - Client-supplied idempotency key for one logical commit.
- Commit
IdValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Content
Id - Durable identity of one immutable content object.
- Content
Ref - A reference to one immutable content object.
- Content
Store Id - Durable id for an immutable content store.
- Crc32c
- An incremental CRC-32C checksum.
- Crc64
Nvme - An incremental CRC-64/NVME checksum.
- Directory
Page Cursor - A cursor that resumes one directory listing after
last_name_key. - Display
Name - User-facing spelling of one path component.
- Effective
Limit - A validated page size selected from a caller request and a policy.
- File
Revisions Page Cursor - A cursor that resumes a newest-first revision listing for one file.
- Generated
IdValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Grep
Page Cursor - A cursor that resumes content search after one
(inode_id, byte_offset)position. - Index
Segment Id - Durable id for one derived-index segment file.
- InodeId
- Numeric identity of a file or directory within a namespace.
- Manifest
No - Monotonic manifest counter for one namespace.
- Metadata
Compaction Id - Identifies one streaming metadata compaction job for log correlation only.
- Metadata
Segment Id - Durable id for one metadata segment.
- NameKey
- Name-policy-derived directory entry key.
- Name
KeyValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Namespace
Id - Durable id for one namespace.
- Namespace
IdValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Operation
Deadline - Elapsed-time state for one logical operation’s retry loop.
- Page
- A typed page result for internal runtime and core methods.
- Page
Request - A typed page request for internal runtime and core methods.
- Pager
- Fetches pages and retains unused items between bounded collections.
- Pagination
Policy - Fixed pagination contract for endpoints with potentially unbounded results.
- Path
Component - One path segment as stored, preserving display spelling.
- Principal
Id - A validated principal identifier supplied by the application.
- Principal
IdValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Principal
Scope - The identity domain a namespace’s principal ids belong to.
- Principal
Scope Validation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Principal
Set - The principals a request acts as: distinct ids, at most
MAX_SUBJECT_PRINCIPALSof them. - Public
Ordinal Range Error - Returned when an ordinal exceeds
MAX_PUBLIC_INTEGER. - Revision
No - Revision number for a file’s content.
- RunNo
- Monotonic run counter allocated by the manifest that names the run.
- Secret
String - A secret string such as an access key, token, or signing secret.
- Sha256
- An incremental SHA-256 checksum.
- Snapshot
Id - Id of a snapshot.
- Snapshot
IdValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- StdMonotonic
Timer - Process-clock implementation backed by
std::time::Instant. - Subject
- Who a request acts as: a principal scope, stable id, and applicable principals.
- Subject
Id - The stable identity a request acts as, used for upload ownership and commit replay.
- Subject
IdValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
- Transport
Retry Policy - Bounded retry configuration for replay-safe transport operations.
- Trash
Page Cursor - A cursor that resumes an oldest-first trash listing after one deletion.
- Upload
Id - Durable id for one upload session.
- WalNo
- Contiguous WAL object number within one namespace.
- Writer
Epoch - Counter used to reject writes from an older writer.
- Writer
Id - Stable writer label supplied by the embedding process.
- Writer
IdValidation Error - Describes why supplied text does not satisfy this identifier’s validation contract.
Enums§
- Access
Grants Error - Why a grant map was rejected.
- Access
Right - One right a grant can carry.
- Attributes
Error - Describes which attribute-map limit an input broke.
- Capability
Document Error - Violation of the capability document rules.
- Checksum
Algorithm - A supported checksum algorithm.
- Checksum
Validation Error - Describes why a checksum is not in its canonical wire form.
- Content
RefKind - A supported content reference kind serialized as a string.
- Content
RefValidation Error - Describes why a content reference cannot be part of a durable commit.
- Error
Code - A stable machine-readable error reason.
- Error
Kind - The broad caller or operator action required for an error.
- Inode
Kind - Filesystem item kind.
- Limit
Error - Invalid caller-supplied page size.
- Metadata
Family Group - Metadata families merged together as one consistency unit.
- Namespace
Access - A namespace’s access mode, fixed at creation.
- Namespace
Cursor Error - Why a namespace-bound cursor cannot resume the enumeration replaying it.
- Opaque
Token Error - Invalid opaque token encoding, version, kind, or body.
- Page
Cursor Error - Invalid opaque page cursor.
- Path
Error - Describes why caller-supplied path or display-name text is not admissible.
- Principal
SetError - Why a request’s principal set was rejected.
- Semantic
Fingerprint Error - A request cannot be represented by the version 1 fingerprint scheme.
- Streaming
Checksum - An incremental checksum for streamed reads and writes.
Constants§
- ALL_
LIMIT_ KEYS - Every registered advisory limit key.
- API_
GROUP_ FILESYSTEM_ V0 - The mandatory filesystem API group.
- API_
GROUP_ MAINTENANCE_ V0 - The optional maintenance API group.
- API_
GROUP_ QUERY_ V0 - The optional derived-index query API group.
- DEFAULT_
MAX_ PAGE_ LIMIT - Contract maximum accepted page size.
- DEFAULT_
PAGE_ LIMIT - Contract page size for endpoints that omit a caller-supplied limit.
- FEATURE_
ATTRIBUTES - Gates inode attributes: writing them, and projecting them onto reads. Attributes are part of the filesystem API group, not a composed extension, so a deployment that serves the filesystem API group serves them.
- FEATURE_
COMMIT_ INLINE_ CONTENT - Gates inline bytes on commit operations.
- FEATURE_
DOWNLOADS_ DIRECT_ GET - Gates download grants that are authorized with short-lived presigned URLs. A deployment that offers any direct transfer advertises this one, because letting a client write an object too large to proxy back means being able to hand it back.
- FEATURE_
INODES_ LIST_ CHILDREN - Gates listing a directory’s children by parent inode ID. Part of the filesystem API group and implemented by the runtime, so current deployments advertise it; the key exists so inode-driven sync clients can gate on deployments built before the route.
- FEATURE_
MAINTENANCE_ GREP_ INDEX - Gates grep index maintenance: enabling a namespace’s grep manifest, disabling it, collecting its garbage, and reading its lifecycle.
- FEATURE_
NAMESPACES_ CREATE - Gates namespace creation.
- FEATURE_
NAMESPACES_ DELETE - Gates namespace deletion.
- FEATURE_
NAMESPACES_ FORK - Gates namespace forking.
- FEATURE_
QUERY_ GREP - Gates grep index content search: the serving half of the capability; the namespace’s verified active grep manifest is the data half.
- FEATURE_
SNAPSHOTS - Gates read-snapshot lifecycle operations.
- FEATURE_
UPLOADS_ DIRECT_ MULTIPART - Starting presigned
direct_multipartupload sessions. Independent ofFEATURE_UPLOADS_DIRECT_PUT: a provider may sign whole-object writes without having an S3-style multipart API at all. - FEATURE_
UPLOADS_ DIRECT_ PUT - Gates direct upload sessions that are authorized with short-lived presigned URLs.
- FIRST_
ALLOCATABLE_ INODE_ ID - First inode id available after the root inode.
- LIMIT_
ACCESS_ MAX_ PRINCIPALS - Most principal ids one request may act as.
- LIMIT_
COMMIT_ MAX_ CONTENT_ TOKENS - Advisory limit: the most content tokens one commit may carry.
- LIMIT_
COMMIT_ MAX_ EXTERNAL_ CONTENT_ REFS - Advisory limit: the most distinct external content refs one commit’s operations may name.
- LIMIT_
COMMIT_ MAX_ INLINE_ CONTENT_ BYTES - Largest inline value accepted on a commit operation.
- LIMIT_
COMMIT_ MAX_ MESSAGE_ BYTES - Advisory limit: the largest accepted commit
message, in bytes. - LIMIT_
COMMIT_ MAX_ OPERATIONS - Advisory limit: the most path operations one commit may carry; a longer
list answers
invalid_requestbefore planning. - LIMIT_
COMMIT_ MAX_ PRECONDITIONS - Counts precondition entries, not resources; a longer list answers
invalid_requestbefore planning. - LIMIT_
DOWNLOAD_ MAX_ CONCURRENT - Advisory limit: how many service-proxied content reads the deployment
materializes at once; requests past the cap answer
server_busy. - LIMIT_
DOWNLOAD_ MAX_ CONTENT_ BYTES - Advisory limit: the largest file content a service-proxied read will buffer and return in one response.
- LIMIT_
GC_ MIN_ GRACE_ WINDOW_ MS - Advisory limit: the smallest accepted
grace_window_mson agcrequest; smaller values answerinvalid_request. Derived from the publication budgets, not tuned. - LIMIT_
PAGINATION_ DEFAULT - Advisory capability key for the default page size applied when callers omit
limit. - LIMIT_
PAGINATION_ MAX - Advisory capability key for the largest page size accepted by a deployment.
- LIMIT_
QUERY_ GREP_ DEFAULT - Advisory limit: matches per grep page when the request omits
limit. - LIMIT_
QUERY_ GREP_ MAX - Advisory limit: the largest accepted grep page limit. Distinct from the pagination keys — a grep item costs a verified file read, not a row.
- LIMIT_
QUERY_ GREP_ SCAN_ BUDGET_ FILES - Advisory limit: files a plan-less
allow_scangrep will scan before refusing withquery_unindexable. - LIMIT_
QUERY_ GREP_ TAIL_ BUDGET_ FILES - Advisory limit: unindexed-tail revisions one grep scans exhaustively
before failing with
index_lagging. - LIMIT_
SNAPSHOT_ MAX_ LIFETIME_ MS - Advisory limit: the largest snapshot expiry measured from record creation.
- LIMIT_
SNAPSHOT_ MAX_ LIVE_ PER_ NAMESPACE - Advisory limit: the most live snapshots one namespace may hold.
- LIMIT_
SNAPSHOT_ MAX_ TTL_ MS - Advisory limit: the largest snapshot TTL one request may ask for.
- LIMIT_
UPLOAD_ COMPLETION_ MAX_ BODY_ BYTES - Advisory limit: the largest JSON body accepted when completing an upload. It is large enough for the maximum number of multipart entries.
- LIMIT_
UPLOAD_ DIRECT_ PUT_ MAX_ CONTENT_ BYTES - Advisory limit: the largest object this deployment’s provider accepts in
one presigned
direct_putrequest. - LIMIT_
UPLOAD_ MAX_ CONCURRENT - Advisory limit: how many service-proxied upload bodies the deployment
buffers at once; requests past the cap answer
server_busy. - LIMIT_
UPLOAD_ MAX_ CONTENT_ BYTES - Advisory limit: the largest request body accepted for service-proxied upload content requests. This is the proxy’s cap, not the provider’s.
- MAX_
ACCESS_ GRANTS_ PRINCIPAL_ BYTES - Most bytes of principal ids one access row may hold, summed over its entries.
- MAX_
ACCESS_ GRANT_ ENTRIES - Most principals one access row may name.
- MAX_
ATTRIBUTES_ TOTAL_ BYTES - Maximum total size of one attribute map in logical UTF-8 bytes. The total counts every key’s bytes plus every value’s bytes. It excludes encoder framing, so the limit does not move when the map is written as JSON instead of CBOR.
- MAX_
ATTRIBUTE_ ENTRIES - Maximum number of entries in one attribute map.
- MAX_
ATTRIBUTE_ KEY_ BYTES - Maximum attribute key length in UTF-8 bytes.
- MAX_
ATTRIBUTE_ VALUE_ BYTES - Maximum length of one attribute value in UTF-8 bytes.
- MAX_
DISPLAY_ NAME_ BYTES - Maximum stored display-name length in UTF-8 bytes: the 255-byte component cap of mainstream filesystems (ext4, APFS, NTFS components) and drives. Names are stored as given, so the cap applies to the bytes as given.
- MAX_
ID_ BYTES - Maximum validated namespace and commit id length in UTF-8 bytes.
- MAX_
NAME_ KEY_ BYTES - Maximum name-key length in UTF-8 bytes. Keys are derived from display
names capped at
crate::path::MAX_DISPLAY_NAME_BYTES; case folding expands at most threefold in bytes, so 768 admits every key derivable from a valid name while bounding row keys, filter keys, and cursors. - MAX_
PATH_ BYTES - Largest canonical absolute path, in UTF-8 bytes. Bounded so every real filesystem, archive format, and sync client can materialize any stored tree; per-component limits alone allowed paths no target could hold.
- MAX_
PATH_ DEPTH - Deepest directory nesting one path may express.
- MAX_
PUBLIC_ INTEGER - Maximum value for an ordinal exposed through the API.
- MAX_
SUBJECT_ PRINCIPALS - Most principals one request may act as.
- PAGE_
CURSOR_ FORMAT_ VERSION - Format version written into every encoded cursor.
- PROTOCOL_
VERSION - The protocol generation this build speaks.
- RESERVED_
ATTRIBUTE_ KEY_ PREFIX - Key prefix reserved for system-owned attributes.
- ROOT_
INODE_ ID - Inode 1 is always the root directory of a namespace.
Traits§
- Monotonic
Timer - Supplies monotonic milliseconds for retry deadlines and deterministic test injection.
- Namespace
Cursor - A cursor bound to one namespace keyspace.
- Opaque
Token - A serializable value with a frozen opaque-token discriminator.
- Page
Cursor - A serializable cursor with an endpoint discriminator.
- Paged
Response - A response that carries items and a continuation position.
Functions§
- decode_
cursor - Decodes a cursor issued by
encode_cursorfor the same endpoint. - decode_
namespace_ cursor - Decodes a cursor issued for
expected_namespace_id’s own keyspace. - decode_
token - Decodes a lowercase hexadecimal JSON token with the expected version and kind.
- encode_
cursor - Encodes a cursor as the opaque string clients round-trip.
- encode_
token - Encodes a value as lowercase hexadecimal JSON with a version and kind.
- generated_
id - Generates a project-standard opaque durable identifier.
- name_
key_ for_ display_ name - Derives the canonical lookup key for a display name.
- next_
public_ ordinal - Returns the next ordinal, or
Noneif the value is already at the limit. - semantic_
commit_ fingerprint - Computes the semantic fingerprint used to validate a reused commit ID.
- sha256_
digest - Computes the durable
sha256:digest spelling used by envelope payloads and local compare tokens. - transport_
retry_ backoff - Computes capped exponential backoff for a retry number starting at one.