Skip to content
faberlinePublic

About

Shared Rust libraries behind the faberline services and CLIs: transport, server runtime, Raft, storage, auth, observability, Kubernetes.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

core

The shared Rust libraries behind the faberline services and CLIs: transport, server runtime, consensus, storage, auth, observability, Kubernetes integration, and the CLI standard commands. Split out of faberline/axiom libs/ with full history.

Crates

Crate What it is
build-stamp Shared build.rs stamping for service CLIs — git short-sha, built-at epoch, and target triple as cargo:rustc-env=<PREFIX>_* directives. Consumed as a [build-dependencies] crate.
claim-token Scoped claim-check access tokens (HMAC-SHA256). Loom's schema layer signs; Keep verifies, so a worker reaches Keep directly only within its key scope.
cli-std Standard agent-facing CLI commands every axiom tool ships: llm (offline self-docs), upgrade (self-update from GitHub releases), issue (search/view/create diagnostics-rich issues). Parameterized by ToolInfo; clap-agnostic.
compass Code intelligence arsenal — navigate, analyze, refactor, and watch any codebase
index-text Rebuildable text-index base for Axiom products.
metrics-prometheus Shared lock-free Prometheus counter, gauge, and latency primitives plus the text/plain version 0.0.4 encoder used by service metrics endpoints.
metrics-remote-write Prometheus Remote Write 1.0 transport and validation shell.
openapi-codegen Generate typed TypeScript, Python, and Rust API clients from an OpenAPI 3.0/3.1/3.2 document
peer-tls Shared peer-mTLS material loading for mutually authenticated peer and replication ports: PEM loaders, rustls client/server builders, and process crypto-provider setup.
raft-core Self-contained, step-driven Raft consensus core — transport- and storage-agnostic. Consumers (relay, keep) supply the network, persistence, and state machine.
raft-runtime Shared Raft runtime that drives raft-core for a service state machine over transport-h2c, including apply, snapshot, compaction, topology, and read-your-write proposal handling.
server-http Shared HTTP protocol runtime built on server-lifecycle and server-tcp: HTTP/1.1 plus h2c serving, request tracing, and hooks for service shells and development servers.
server-lifecycle Shared protocol-neutral server lifecycle primitives: bind configuration, drain and readiness signals, connection budgets, shutdown hooks, and metrics hooks.
server-tcp Shared TCP protocol runtime built on server-lifecycle: accept loop, per-connection supervision, admission budgeting, drain-aware shutdown, and handler traits.
service-auth Shared request-auth middleware for the ecosystem's HTTP services: the generic extract -> verify -> reject -> inject plumbing plus a Verifier trait each service implements. Token crypto lives in crates/claim-token; per-resource authorization (RBAC, scope-vs-key) stays in the service handlers. The common shape lumen/keep/relay/loom each hand-roll today.
service-backup Shared backup contract for axiom services: destination/policy schema, sink trait, local sink, and runner primitive. Services produce consistent snapshots; backup runners upload them.
service-collector Reusable checkpointed collector runtime with quarantine and retry control.
service-executor Bounded asynchronous execution primitives for Axiom services
service-http Shared HTTP-service policy and adapters: standard probe routes, observability compatibility, lifecycle readiness, runtime delegation, and the {error, message} envelope.
service-k8s Shared Kubernetes integration for Axiom services: managed-service reconciliation, leader election, CRD and workload rendering, stateful capacity planning, and resize primitives.
service-mcp Shared MCP stdio and streamable HTTP transport with browser security policy.
service-observability Protocol-neutral service observability integration: structured logging, optional OTLP traces, metrics, lifecycle counters, and process-resource sampling.
service-projection Typed projection registry, checkpoints, catch-up, rebuild, and flush runtime.
storage-durable Shared durable local-storage primitives: fsync policy, atomic replacement, CRC-framed logs, and sequence-named snapshot file stores.
storage-object Shared local and cloud object-store boundary with conditional writes and versioned metadata.
storage-segment Immutable segment and manifest-last archive coordination.
surface Renderer-neutral UI element model shared by Jet WASM, native desktop readers, renderers, and parity tools
transport-h2c Shared HTTP/2 cleartext transport: client helpers, connection management, pooling, sizing, and optional per-connection HTTP/1.1 plus h2c protocol support.
transport-otlp Official OTLP HTTP and gRPC transport shell.
ui-runtime Renderer-neutral component runtime: hooks, fiber storage, mount, flush, and update scheduling over surface elements

Using a crate

Crates are consumed as git dependencies pinned to a release tag:

[dependencies]
raft-core = { git = "https://github.com/faberline/core", tag = "v0.4.13" }

index-text needs the vendored jieba-rs patch. Cargo only honours [patch] from the root workspace, so a consumer that depends on index-text carries the same patch (and a copy of vendor/jieba-rs) in its own root manifest:

[patch.crates-io]
jieba-rs = { path = "vendor/jieba-rs" }

Working here

cargo check --workspace --all-targets
cargo test -p <crate>

Conventions every crate follows live in CONTRIBUTING.md; each crate's own CONTRIBUTING.md covers what that crate promises. How the workspace is cut into contexts and layers, the glossary, the per-context domain pages, and the release process are in docs/.

About

Shared Rust libraries behind the faberline services and CLIs: transport, server runtime, Raft, storage, auth, observability, Kubernetes.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages