Skip to main content

Crate sagittarius

Crate sagittarius 

Source
Expand description

Sagittarius — a self-hosted DNS sinkhole.

Shipped as a single self-contained binary containing the DNS engine, persistent storage, and the web administration UI. See SPEC.md for the full architecture and design rationale.

§Module layout

ModuleResponsibility
appRuntime that owns shared state and wires subsystems
blocklistBlocklist ingestion subsystem (fetch → parse → aggregate → schedule)
cliclap argument surface; parses args/env into a config::Config
codecCustom lazy DNS wire-format parser/serializer
configOperational configuration domain types
errorCrate-wide error types and Result alias
resolverDNS query pipeline (tower service stack)
storageSQLite persistence (config, lists, credentials)
telemetryLogging initialisation (tracing subscriber setup)
webaxum-based admin HTTP server with askama/Datastar UI

Modules§

app
Application runtime.
blocklist
Blocklist ingestion subsystem (SPEC §6).
cli
Command-line interface — the input adapter that turns process arguments and environment variables into a typed Config.
codec
DNS wire-format codec.
config
Operational configuration — the domain types the runtime is built from.
error
Crate-wide error strategy.
resolver
DNS resolution pipeline and resolver state.
storage
Persistent storage backed by SQLite.
telemetry
Telemetry module — structured logging initialisation and runtime diagnostics.
time
A tiny wall-clock helper shared across subsystems.
web
Web administration interface.