Documentation
The docs here are organized by task. Each task page shows a workflow that composes two or more Glacier packages to solve a concrete problem. If you want the full API for a single package, see the Packages section in the sidebar.
Building a CLI
Define commands as Go structs, run glaciergen, and ship a binary with flag parsing, env binding, signal handling, and the Glacier banner - no boilerplate.
cli · option · errs · log · term · conf
Writing tests
Assert values with a smart deep-equal engine, inject fake clocks, and verify interface expectations - all in idiomatic table-driven tests.
assert · fixture · mock · errs
Mocking HTTP
Stub HTTP responses with typed stubs, verify every request was made, and keep tests hermetic with zero real network calls.
httpmock · httpc · fixture
Loading config
Layer defaults, a JSON file, environment variables, and flags into a single atomic snapshot that any package can read concurrently.
conf · option · errs · log
Structured logging
Attach request context once and let it flow into every log record downstream. Use Trace/Notice levels and Redact for secrets.
log · errs · obs
Observability
Initialize OTLP providers once, opt packages into tracing and metrics, and get trace_id in every log record automatically.
obs · log · httpc
Concurrency
Run bounded goroutine groups with panic recovery, coordinate access with ctx-aware mutexes, and diagnose stuck locks without touching production builds.
concur · errs · log
For per-package API reference, use the Packages section in the left sidebar.