Skip to content

Documentation

Glacier companion bear

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.

Apache-2.0