Package Reference¶
All packages are fully documented on pkg.go.dev.
Installation¶
Go 1.26+ required.
Quick import reference¶
| What | Import path |
|---|---|
| Core codecs | github.com/DaniDeer/go-codex/codex |
| Format bridges (JSON, YAML, TOML, Gob, Binary) | github.com/DaniDeer/go-codex/format |
| Built-in constraints | github.com/DaniDeer/go-codex/validate |
| REST API builder | github.com/DaniDeer/go-codex/api/rest |
| Event channel builder | github.com/DaniDeer/go-codex/api/events |
| Request-reply route builder (ZMQ, MQTT 5, …) | github.com/DaniDeer/go-codex/api/reqreply |
| MCP server builder | github.com/DaniDeer/go-codex/api/mcp |
| net/http adapter (server + client) | github.com/DaniDeer/go-codex/adapters/nethttp |
| chi adapter | github.com/DaniDeer/go-codex/adapters/chi |
| Paho MQTT 3.1.1 adapter | github.com/DaniDeer/go-codex/adapters/mqtt |
| MQTT 5.0 adapter | github.com/DaniDeer/go-codex/adapters/mqtt5 |
| ZeroMQ adapter (PUB/SUB, REQ/REP, DEALER/ROUTER) | github.com/DaniDeer/go-codex/adapters/zeromq |
| SQL adapter (goose migrations + codec validation) | github.com/DaniDeer/go-codex/adapters/sql |
| Redis cache adapter (typed) | github.com/DaniDeer/go-codex/adapters/redis |
| WebSocket adapter (server-side, duplex sessions) | github.com/DaniDeer/go-codex/adapters/websocket |
| File IO adapter (ports bindings) | github.com/DaniDeer/go-codex/adapters/file |
| mark3labs/mcp-go adapter | github.com/DaniDeer/go-codex/adapters/mcpgo |
| REST-client-to-MCP-tool bridge | github.com/DaniDeer/go-codex/adapters/mcprest |
| OpenAI-compatible Chat Completions adapter | github.com/DaniDeer/go-codex/adapters/openai |
| templ SSR format plug-in | github.com/DaniDeer/go-codex/adapters/templ |
| OpenAPI 3.1 renderer | github.com/DaniDeer/go-codex/render/openapi |
| AsyncAPI 3.0 renderer | github.com/DaniDeer/go-codex/render/asyncapi/v3 |
| AsyncAPI 2.6 renderer (frozen) | github.com/DaniDeer/go-codex/render/asyncapi/v2 |
| Forge pipelines (governed, batch) | github.com/DaniDeer/go-codex/forge |
| Reactive stream pipelines | github.com/DaniDeer/go-codex/stream |
| HTTP route descriptors | github.com/DaniDeer/go-codex/route |
| Declarative security/Transform middleware (shared by rest/events/reqreply) | github.com/DaniDeer/go-codex/middleware |
| Schema model | github.com/DaniDeer/go-codex/schema |
Env-var config loading (FromEnv/FromEnvVar) |
github.com/DaniDeer/go-codex/config |
| Application lifecycle (context, supervised goroutines, shutdown) | github.com/DaniDeer/go-codex/app |
| Protocol-agnostic IO ports (Source/Sink/IO/Latest/Tool/Duplex) | github.com/DaniDeer/go-codex/ports |
| Observer interfaces | github.com/DaniDeer/go-codex/stats |
Core¶
| Package | Description | pkg.go.dev |
|---|---|---|
codex |
⭐ Public API: Codec[T], primitives, struct, union, slice, constraints |
→ |
validate |
Reusable constraints: Email, UUID, URL, ranges, MQTT topics, binary file formats (PNG, JPEG, PDF, ZIP…), … | → |
format |
Format bridges: JSON, YAML, TOML, Gob, Binary (raw bytes), streaming, env vars, File I/O | → |
schema |
Schema model (pure data, zero dependencies) | → |
route |
HTTP route descriptors: Route, Param, SecurityScheme |
→ |
middleware |
Declarative security/Transform middleware vocabulary shared by api/rest/api/events/api/reqreply: Middleware, Declaration[In,Out], SecurityScheme, Disposition, ContextField[V] |
→ |
stats |
Observer interfaces: ValidationObserver, Observer, PipelineObserver, SecurityObserver, FileObserver, SQLObserver, TraceObserver; NoopObserver + LoggingObserver + NewFanout |
→ |
config |
Typed env-var config loading: FromEnv[T]/FromEnvVar[T], schema-driven coercion |
→ |
app |
Application lifecycle: root ctx + observer injection, supervised goroutines (fail-fast), LIFO shutdown hooks | → |
ports |
Protocol-agnostic IO enforcement points: SourcePort/SinkPort/IOPort/LatestPort/ToolPort/DuplexPort |
→ |
API builders (Layer 2)¶
| Package | Description | pkg.go.dev |
|---|---|---|
api/rest |
REST API builder: typed Decode/Encode + OpenAPI spec | → |
api/events |
Event channel builder (PUB/SUB): typed Decode/Encode + AsyncAPI spec; works for MQTT 3, MQTT 5, ZMQ PUB/SUB | → |
api/reqreply |
Request-reply route builder: NewRoute[Req,Resp](topic, codecs, ...RouteOpt) + Route.RegisterHandle(server) (*RouteHandle, error); mirrors api/rest for async transports (ZMQ REQ/REP, MQTT 5); generates AsyncAPI 3.0 with request-reply reply: block |
→ |
api/mcp |
MCP server builder: Tools, Resources, Prompts | → |
Adapters¶
| Package | Description | pkg.go.dev |
|---|---|---|
adapters/nethttp |
net/http: server (Handler, Register) + client (Call) | → |
adapters/chi |
chi router adapter | → |
adapters/mqtt |
Paho MQTT 3.1.1: NewSubscribeTransport/NewPublishTransport (PUB/SUB, consumed via events.SubscribeHandle/events.PublishHandle) + Connect; uses api/events channel declarations |
→ |
adapters/mqtt5 |
MQTT 5.0 (paho.golang): NewSubscribeTransport/NewPublishTransport (PUB/SUB) + NewServerTransport/NewClientTransport (request-reply, consumed via reqreply.Server.Attach/Client.Attach) + Connect; User Properties + ContentType auto-format; UserPropertyParam.WithCodec for property validation |
→ |
adapters/zeromq |
ZeroMQ (CGO-free FramedSocket interface): NewSubscribeTransport/NewPublishTransport (PUB/SUB) + NewServerTransport/NewClientTransport (REQ/REP) + NewRouterServerTransport/NewDealerClientTransport (DEALER/ROUTER concurrent), all consumed via reqreply.Server.Attach/Client.Attach |
→ |
adapters/sql |
SQL adapter: Validate[T] (codec-level row validation, wraps codec encode→decode round trip) + Migrator (goose migrations wrapper); RowValidationError, MigrationError — both slog.LogValuer |
→ |
adapters/redis |
Typed cache adapter for any Redis-protocol server: Get/Set/Seed, codec-validated round trip |
→ |
adapters/websocket |
Server-side WebSocket adapter: typed, codec-validated frame streams over persistent duplex connections | → |
adapters/file |
Protocol-agnostic file IO adapter bindings for ports (stdlib-only, no CGO/external deps) |
→ |
adapters/mcpgo |
mark3labs/mcp-go adapter | → |
adapters/mcprest |
Bridges api/rest client calls (via adapters/nethttp) to MCP tool handlers (via adapters/mcpgo) |
→ |
adapters/openai |
ports.IOAdapter against any OpenAI-compatible Chat Completions endpoint (OpenAI, Azure OpenAI, Ollama, vLLM, LM Studio, Groq, …) |
→ |
adapters/templ |
templ SSR format plug-in | → |
Forge pipelines (Layer 3) and Reactive streams¶
| Package | Description | pkg.go.dev |
|---|---|---|
forge |
Governed KPI functions: NewFunction, Compose, Registry; synchronous batch computation with SHA-256 governance hashes and PipelineSpec YAML |
→ |
stream |
Reactive stream pipelines over typed Go channels: From, FromCodec, Apply (wraps forge.Function per-item), Filter, Tap, MapErr, Merge, Tee, CombineLatest2, Buffer, Debounce, Throttle, Drain, Collect; Stream[T]{Values, Errors} explicit error channels |
→ |
Renderers¶
| Package | Description | pkg.go.dev |
|---|---|---|
render/openapi |
OpenAPI 3.1 spec renderer | → |
render/asyncapi/v3 |
AsyncAPI 3.0 spec renderer | → |
render/asyncapi/v2 |
AsyncAPI 2.6 spec renderer (frozen) | → |
render/jsonschema |
JSON Schema renderer (used by api/mcp) | → |
render/pipeline |
Pipeline YAML renderer (used by forge) | → |