diene.go-api-engine

module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 26, 2026 License: MIT

README

Diene Go api-engine library

CI Unit coverage Integration coverage Meta coverage Go Reference Commit activity

Diene's reproducible development environment is managed by Nix. Run direnv allow once, then use pls tasks from the loaded shell.

This repository inherits the all-features workspace baseline: split CI/CD, secrets, release configuration, validators, standards, and vendored agent-skill synchronization.

Commands

  • pls setup — synchronize installed diene package skills.
  • pls lint — run every pre-commit gate.
  • pls secret:scan — scan tracked content for secrets.
  • pls skills:sync — rebuild .claude/skills/vendor/ from installed packages.

Publishable Go module

github.com/AtomiCloud/diene.go-api-engine is the Go family's outbound API client engine: a multi-backend client tree, 3-case response classification mapped onto (T, error) with problem-typed errors through github.com/AtomiCloud/diene.go-errors-problems, per-backend credentials resolved through the github.com/AtomiCloud/diene.go-auth-engine retriever seam, an engine-owned config block, and a retry-once-on-network-error resilience profile — shipped with a consumer-facing testhelper package.

It is client only. It hosts nothing: middleware, controllers, health and readiness endpoints, and error-info publishing belong to the base template's hosting layer or to the error portal, never here.

go get github.com/AtomiCloud/diene.go-api-engine@latest
users, err := apiengine.Execute[[]User](ctx, client, apiengine.Request{Path: "/v1/users"})

Packages:

  • lib/apiengine — the client tree, the per-backend client, the 3-case classifier, the engine-owned config block, and the problem catalog.
  • lib/wire — the C0 §1 wire codecs: ISO 8601 durations, RFC 3339 UTC instants, and IANA timezone identifiers.
  • testhelper — fake backends for the client tree, canned Problem-envelope responses, and outcome assertions.

The three cases, the multi-backend model, and the resilience profile are documented on the packages themselves and in the shipped usage skill skills/diene-go-api-engine-usage/SKILL.md.

Go commands

  • pls build — build every package in the module.
  • pls typecheck — compile every source package without running tests.
  • pls test / pls test:coverage — run unit, integration, and active meta tiers.
  • pls deadcode — run strict whole-repository and production passes plus the LLM-lax report.
  • pls up / pls down — start or stop local infrastructure (this library binds none).
  • ./scripts/ci/pkg-validate.sh all — run module-path, vet, API, docs, and example validators.

See the Go baseline for the language contract and template-maintenance boundary. See the Go library baseline for promotion, testing, compatibility, and publication policy.

Standards

Shared standards

Domain-specific documentation belongs under docs/domain/. The docs/standards/contracts/ location is reserved for the separately owned C0 contracts standard.

Go language variants

Directories

Path Synopsis
lib
apiengine
Package apiengine is the Go family's outbound API client engine.
Package apiengine is the Go family's outbound API client engine.
wire
Package wire implements the C0 §1 serialization contract for the values this engine puts on, or reads off, the network.
Package wire implements the C0 §1 serialization contract for the values this engine puts on, or reads off, the network.
Package testhelper provides the fakes and assertions a consumer of github.com/AtomiCloud/diene.go-api-engine would otherwise rebuild in every test suite.
Package testhelper provides the fakes and assertions a consumer of github.com/AtomiCloud/diene.go-api-engine would otherwise rebuild in every test suite.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL