Renderingen-US

Norma — the standard library

Norma is Faber's standard library. It provides Latin-named modules accessed through norma:* paths, with nested norma:parent/child submodule paths for shared types and facades. Stdlib declarations are Faber source under the sibling norma repository. Norma is a platform default — apps use it without declaring it in faber.toml [dependencies].

Modules marked native ship real Faber bodies today; deferred modules are declared with mori stubs pending implementation; target modules are committed in target form and do not compile yet.

Modules#

ModuleDomainStatus
norma:aleatorEntropy and randomnessnative
norma:arcaDatabase device (postgres/mysql/sqlite)deferred
norma:caelumNetwork sockets (TCP/UDP)deferred
norma:chordaText and cord operations, UTF-8 mechanical trionative
norma:codexEncoding and decoding (base64, hex, URL)deferred
norma:consolumConsole I/O (stdin, stdout, stderr)native
norma:cryptaCryptography (hash, HMAC, cipher, sign)partial
norma:csvCSV wire formatnative
norma:filaDouble-ended queuetarget
norma:httpHTTP client and serverdeferred
norma:jsonJSON parsing and serialisationnative
norma:mathesisScalar math catalognative
norma:modelModel metadata (safetensors/GGUF)partial
norma:nunciusIPC (shared memory, ports, sync primitives)deferred
norma:optimizerSGD optimizer stepsnative
norma:ordinataKey-ordered maptarget
norma:pressuraCompression (gzip/deflate/brotli/zstd)deferred
norma:processusProcess execution and environmentnative
norma:solumFilesystem operationsnative
norma:solum/pathPure pathname operationsnative
norma:tempusTime and durationpartial
norma:tensorTensor bridge helpersnative
norma:thesaurusCache and pub/subdeferred
norma:tomlTOML parsing and serialisationdeferred
norma:valorCodec-agnostic value-tree navigationnative
norma:vectorVector register intrinsicsnative
norma:yamlYAML parsing and serialisationdeferred

Nested submodules#

Shared types and facades live under a parent module — every .fab file in a subdirectory is a separately importable module:

ImportRole
norma:caelum/terminusTCP endpoint type (Terminus)
norma:caelum/connexusConnected socket type (Connexus)
norma:caelum/auscultatorTCP listener type (Auscultator)
norma:json/pangeJSON serialize facade
norma:json/solveJSON parse facade
norma:json/cursorParser cursor type (Resultus)
norma:json/lexicaShared lexical floor (internal)

Morphologia naming convention#

Norma follows the morphologia policy for all method names. Latin verb conjugation carries execution mode; number carries flow. Two axes compose: time × flow (sync/async × finite/stream) and ownership (mutate vs copy-out).

Callable posture is a signature slot: bare means synchronous finite, fiet an asynchronous finite function, fiunt a synchronous stream, fient an asynchronous stream. @ futura / @ cursor remain accepted compatibility spellings, but the posture words are the canonical surface.

StemSyncAsyncMeaning
leg-legelegetRead
scrib-writescribetWrite
quaer-quaeretQuery (finite)
quaer-quaerentQuery (stream)

Ownership pairs (mutate vs copy-out):

MutateCopy-outMeaning
addeadditaAdd
inverteinversaReverse
filtrafiltrataFilter

Async finite verbs return promissum<T>; async streams yield values through cede. The pange / solve / tempta mechanical trio covers wire encode / decode across json, toml, yaml, csv, and chorda.

Usage#

import from "norma:solum" private solum

fn legeConfig()  string {
    return solum.lege("config.toml")
}

Test code can live beside product source in colocated *.proba files — discovered only by faber test, never importable, and excluded from Cista package snapshots.