go-atlas

module
v0.0.0-...-2ff081f Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2026 License: MIT

README

go-atlas

Production-ready Go building blocks for distributed systems — transport, caching, observability, auth, secrets, and more.

Go Reference CI Go Report Card Release

Overview

go-atlas is a modular Go toolkit for building production-grade distributed services. It provides a composable set of packages — each usable independently — covering transport (HTTP, gRPC, NATS), caching, observability, authentication, secret management, configuration, and domain utilities.

Every major component is defined by an interface, implementations are injected via functional options, and unset dependencies default to safe no-ops. Import only what you need — there is no framework bootstrap or global state.

Requirements

  • Go 1.25+

Installation

go get github.com/altessa-s/go-atlas

Import only the packages you need:

import "github.com/altessa-s/go-atlas/data/cache"

Package Overview

Package Description
auth/oidc OIDC/JWT validation with JWKS auto-refresh, CEL rules, token revocation
auth/opa Open Policy Agent with bundle hot-reloading
config/loader Multi-source config loading (YAML/TOML, env vars, secrets) with validation
config/templates Pre-built configuration structs for common components
core Collections, errors, context, encoding, retry, scheduling, types (zero external deps)
data/audit Async audit-event dispatcher with pluggable storage
data/cache Multi-backend caching with singleflight, fallback, and TTL management
data/idempotency Idempotency key management (Redis, NATS, memory)
data/leadelect Leader election (NATS KV-based)
data/limiters Token-bucket rate limiting (Redis, NATS, memory)
data/locks Distributed locking (NATS)
data/mongo MongoDB repository patterns, cursor pagination, CSFLE, migrations
data/outbox Transactional outbox (MongoDB-backed)
data/probfilter Bloom and Cuckoo probabilistic filters
data/uniq Uniqueness constraint providers (NATS, Redis, no-op)
domain/converter Generic struct-to-struct conversion with codecs and lazy iterators
domain/fieldtracker Struct field change tracking
domain/normalizer Tag-driven data normalization with pluggable modifiers
domain/proto Protobuf field mask utilities
infrastructure/mongo MongoDB client setup and lifecycle
infrastructure/nats NATS connection management
infrastructure/redis Redis client setup
observability/health Health check coordinator with subscriptions
observability/metrics Prometheus metrics via interface-driven adapters
observability/slog slog extensions: nil-safe helpers, colorized and PII-masking handlers
observability/tracing Distributed tracing (OpenTelemetry, OTLP, console) with samplers
security/secrets Generic secret manager with LRU cache, watch, and scheduler refresh
security/tlsutils TLS helpers, OCSP stapling, Let's Encrypt (Certify), Vault-backed certs
security/vault HashiCorp Vault client (AppRole, token, userpass auth)
service/id Service identity (ULID/UUID) from env, file, or static
service/scheduler Distributed cron scheduler with priority queues and leader election
tools/codegen/optgen Code generator for functional options pattern
tools/codegen/goconfig Configuration struct code generator
transport/broker Message broker abstraction (NATS JetStream, outbox)
transport/grpc gRPC server, interceptors, factory
transport/http HTTP server, middlewares, codec registry, HTTP client

Documentation

Full API documentation is available at pkg.go.dev.

Development

git clone https://github.com/altessa-s/go-atlas.git
cd go-atlas
Command Description
make fmt Format code and sort imports
make lint Run golangci-lint (34 linters)
make test Run all tests
make test-all Tests with race detector, shuffle, and coverage
make bench Run all benchmarks
make security-scan Run govulncheck and gosec
make generate Run go generate across all packages

Contributing

Contributions are welcome. Please see CONTRIBUTING.md for guidelines.

Security

Report vulnerabilities by email to security@altessa-s.com. See SECURITY.md.

License

MIT License — Copyright (c) 2021-2026 ALTESSA SOLUTIONS INC. See LICENSE.

Directories

Path Synopsis
auth
oidc
Package oidc provides OpenID Connect JWT token validation with automatic JWKS key rotation.
Package oidc provides OpenID Connect JWT token validation with automatic JWKS key rotation.
oidc/factory
Package factory provides configuration-based creation of OIDC providers.
Package factory provides configuration-based creation of OIDC providers.
opa
Package opa provides Open Policy Agent (OPA) integration for authorization.
Package opa provides Open Policy Agent (OPA) integration for authorization.
opa/factory
Package factory provides configuration-based creation of OPA managers and evaluators.
Package factory provides configuration-based creation of OPA managers and evaluators.
opa/sources/filesystem
Package filesystem provides a PolicySource implementation that reads OPA policies from the local filesystem with optional hot-reload support via fsnotify.
Package filesystem provides a PolicySource implementation that reads OPA policies from the local filesystem with optional hot-reload support via fsnotify.
Package config defines the configuration structures and validation logic for all infrastructure components managed by go-atlas.
Package config defines the configuration structures and validation logic for all infrastructure components managed by go-atlas.
internal/utils
Package utils provides internal utilities for the config package.
Package utils provides internal utilities for the config package.
internal/validators
Package validators provides custom validation rules for configuration fields.
Package validators provides custom validation rules for configuration fields.
loader
Package loader provides multi-source configuration loading with YAML/TOML backends and environment variable mapping.
Package loader provides multi-source configuration loading with YAML/TOML backends and environment variable mapping.
loader/backend
Package backend defines interfaces for configuration file backends.
Package backend defines interfaces for configuration file backends.
loader/backend/toml
Package toml provides a TOML backend for the configuration parser.
Package toml provides a TOML backend for the configuration parser.
loader/backend/yaml3
Package yaml3 provides a YAML backend for the configuration parser.
Package yaml3 provides a YAML backend for the configuration parser.
loader/secrets
Package secrets provides secret expansion functionality for configuration loading.
Package secrets provides secret expansion functionality for configuration loading.
core
collections/maps
Package maps provides utilities for map transformation, filtering, and conversion.
Package maps provides utilities for map transformation, filtering, and conversion.
collections/slices
Package slices provides generic utilities for slice operations like deduplication, filtering, and transformation.
Package slices provides generic utilities for slice operations like deduplication, filtering, and transformation.
context
Package context provides helpers for working with contexts.
Package context provides helpers for working with contexts.
encoding/hash
Package hash provides small, stdlib-only helpers for producing deterministic, hex-encoded SHA-256 digest strings.
Package hash provides small, stdlib-only helpers for producing deterministic, hex-encoded SHA-256 digest strings.
encoding/serializer
Package serializer provides a common Serializer interface for encoding and decoding arbitrary Go values.
Package serializer provides a common Serializer interface for encoding and decoding arbitrary Go values.
errors
Package errors provides general error classification and wrapping utilities.
Package errors provides general error classification and wrapping utilities.
factory
Package factory provides common utilities for factory pattern implementations.
Package factory provides common utilities for factory pattern implementations.
io
Package io provides I/O utilities including buffer pooling and limited readers.
Package io provides I/O utilities including buffer pooling and limited readers.
io/files
Package files provides utilities for file system operations.
Package files provides utilities for file system operations.
net/http
Package http provides foundational HTTP utilities and types.
Package http provides foundational HTTP utilities and types.
runtime
Package runtime provides low-level runtime utilities wrapping Go's runtime package.
Package runtime provides low-level runtime utilities wrapping Go's runtime package.
runtime/appinfo
Package appinfo provides standardized access to application metadata and configuration.
Package appinfo provides standardized access to application metadata and configuration.
runtime/concurrency
Package concurrency provides utilities for managing concurrent execution.
Package concurrency provides utilities for managing concurrent execution.
runtime/helpers
Package helpers provides low-level runtime utilities for debugging and tracing.
Package helpers provides low-level runtime utilities for debugging and tracing.
runtime/panics
Package panics provides utilities for panic handling and runtime assertions.
Package panics provides utilities for panic handling and runtime assertions.
runtime/retry
Package retry provides small, stdlib-only retry helpers.
Package retry provides small, stdlib-only retry helpers.
runtime/signals
Package signals provides OS signal handling with priority-based execution and rate limiting.
Package signals provides OS signal handling with priority-based execution and rate limiting.
scheduler
Package scheduler defines the core interface and value types for task scheduling.
Package scheduler defines the core interface and value types for task scheduling.
text/strings
Package strings provides utilities for string manipulation, conversion, and secure operations.
Package strings provides utilities for string manipulation, conversion, and secure operations.
time
Package time provides utilities for safe timer management.
Package time provides utilities for safe timer management.
time/timeformat
Package timeformat provides time formatting with RFC3339 and Unix timestamp support.
Package timeformat provides time formatting with RFC3339 and Unix timestamp support.
types/bits
Package bits provides generic bit manipulation functions for all integer types.
Package bits provides generic bit manipulation functions for all integer types.
types/constraints
Package constraints provides reusable generic constraints for numbers, primitives, and strings.
Package constraints provides reusable generic constraints for numbers, primitives, and strings.
types/nilcheck
Package nilcheck provides utilities for checking nil interface values.
Package nilcheck provides utilities for checking nil interface values.
types/ptr
Package ptr provides helpers for creating and dereferencing pointers to primitive types.
Package ptr provides helpers for creating and dereferencing pointers to primitive types.
data
audit
Package audit provides high-performance, asynchronous user action auditing with at-least-once delivery semantics.
Package audit provides high-performance, asynchronous user action auditing with at-least-once delivery semantics.
audit/middleware/grpc
Package grpc provides gRPC interceptors for automatic request auditing.
Package grpc provides gRPC interceptors for automatic request auditing.
audit/middleware/http
Package http provides HTTP middleware for automatic request auditing.
Package http provides HTTP middleware for automatic request auditing.
audit/storages/memory
Package memory provides an in-memory audit storage implementation for testing.
Package memory provides an in-memory audit storage implementation for testing.
audit/storages/mongo
Package mongo provides a MongoDB-backed audit event storage implementation.
Package mongo provides a MongoDB-backed audit event storage implementation.
cache
Package cache provides a unified caching interface with multiple backends and serialization support.
Package cache provides a unified caching interface with multiple backends and serialization support.
cache/factory
Package factory provides configuration-based creation of cache instances and providers.
Package factory provides configuration-based creation of cache instances and providers.
cache/lru
Package lru provides generic thread-safe and sharded LRU cache implementations.
Package lru provides generic thread-safe and sharded LRU cache implementations.
cache/providers
Package providers defines the cache Provider interface and common errors.
Package providers defines the cache Provider interface and common errors.
cache/providers/freecache
Package freecache provides an in-memory cache provider using FreeCache.
Package freecache provides an in-memory cache provider using FreeCache.
cache/providers/lru
Package lru provides an LRU-based cache provider implementing the providers.Provider interface.
Package lru provides an LRU-based cache provider implementing the providers.Provider interface.
cache/providers/noop
Package noop provides a no-operation cache provider that discards all writes.
Package noop provides a no-operation cache provider that discards all writes.
cache/providers/redis
Package redis provides a Redis-backed cache provider.
Package redis provides a Redis-backed cache provider.
filter
Package filter provides CEL expression parsing and translation to database-specific filters.
Package filter provides CEL expression parsing and translation to database-specific filters.
filter/translators/lua
Package lua provides a translator that converts filter AST nodes to Lua boolean expressions for use in Redis EVAL scripts.
Package lua provides a translator that converts filter AST nodes to Lua boolean expressions for use in Redis EVAL scripts.
filter/translators/mongo
Package mongo provides a translator that converts filter AST nodes to MongoDB bson.M filters.
Package mongo provides a translator that converts filter AST nodes to MongoDB bson.M filters.
filter/translators/redisearch
Package redisearch provides a translator that converts filter AST nodes to RediSearch query strings.
Package redisearch provides a translator that converts filter AST nodes to RediSearch query strings.
idempotency
Package idempotency provides duplicate request detection using idempotency keys.
Package idempotency provides duplicate request detection using idempotency keys.
idempotency/factory
Package factory provides configuration-based creation of idempotency storage.
Package factory provides configuration-based creation of idempotency storage.
idempotency/storages
Package storages defines the Storage interface for idempotency key persistence.
Package storages defines the Storage interface for idempotency key persistence.
idempotency/storages/memory
Package memory provides in-memory storage for idempotency keys with TTL support.
Package memory provides in-memory storage for idempotency keys with TTL support.
idempotency/storages/nats
Package nats provides NATS JetStream KeyValue storage for idempotency keys.
Package nats provides NATS JetStream KeyValue storage for idempotency keys.
idempotency/storages/redis
Package redis provides Redis storage for idempotency keys with TTL support.
Package redis provides Redis storage for idempotency keys with TTL support.
internal/natsbase
Package natsbase provides a base type for NATS JetStream KeyValue providers.
Package natsbase provides a base type for NATS JetStream KeyValue providers.
internal/natskvlease
Package natskvlease provides common utilities for NATS JetStream KeyValue-based distributed resource management, including distributed locks and leader election.
Package natskvlease provides common utilities for NATS JetStream KeyValue-based distributed resource management, including distributed locks and leader election.
internal/redisbase
Package redisbase provides common utilities for Redis-based storage implementations.
Package redisbase provides common utilities for Redis-based storage implementations.
internal/redisutils
Package redisutils provides common utilities for Redis-based data providers.
Package redisutils provides common utilities for Redis-based data providers.
leadelect
Package leadelect provides distributed leader election for service coordination.
Package leadelect provides distributed leader election for service coordination.
leadelect/errs
Package errs provides common errors for leader election providers.
Package errs provides common errors for leader election providers.
leadelect/factory
Package factory provides configuration-based creation of leader electors.
Package factory provides configuration-based creation of leader electors.
leadelect/providers
Package providers defines the Provider interface for leader election backends.
Package providers defines the Provider interface for leader election backends.
leadelect/providers/nats
Package nats provides NATS JetStream KeyValue-based leader election for distributed systems.
Package nats provides NATS JetStream KeyValue-based leader election for distributed systems.
limiters
Package limiters provides shared types and interfaces for rate limiting functionality used by both gRPC interceptors and HTTP middlewares.
Package limiters provides shared types and interfaces for rate limiting functionality used by both gRPC interceptors and HTTP middlewares.
limiters/tokenbucket
Package tokenbucket implements rule-based rate limiting using a sliding window algorithm.
Package tokenbucket implements rule-based rate limiting using a sliding window algorithm.
limiters/tokenbucket/factory
Package factory provides configuration-based creation of rate limiters.
Package factory provides configuration-based creation of rate limiters.
limiters/tokenbucket/storages
Package storages defines the Storage interface for token bucket rate limiting.
Package storages defines the Storage interface for token bucket rate limiting.
limiters/tokenbucket/storages/memory
Package memory provides in-memory rate limit storage for single-instance tokenbucket deployments.
Package memory provides in-memory rate limit storage for single-instance tokenbucket deployments.
limiters/tokenbucket/storages/nats
Package nats provides NATS JetStream KeyValue rate limit storage for distributed tokenbucket deployments.
Package nats provides NATS JetStream KeyValue rate limit storage for distributed tokenbucket deployments.
limiters/tokenbucket/storages/redis
Package redis provides Redis-based rate limit storage for distributed tokenbucket deployments.
Package redis provides Redis-based rate limit storage for distributed tokenbucket deployments.
locks/dlock
Package dlock provides distributed locks for coordinating access across multiple service instances.
Package dlock provides distributed locks for coordinating access across multiple service instances.
locks/dlock/errs
Package errs provides common errors for distributed lock providers.
Package errs provides common errors for distributed lock providers.
locks/dlock/factory
Package factory provides configuration-based creation of distributed locks.
Package factory provides configuration-based creation of distributed locks.
locks/dlock/providers
Package providers defines the Provider and Lock interfaces for distributed locking.
Package providers defines the Provider and Lock interfaces for distributed locking.
locks/dlock/providers/nats
Package nats provides NATS JetStream KeyValue-based distributed locks with automatic renewal.
Package nats provides NATS JetStream KeyValue-based distributed locks with automatic renewal.
locks/dlock/providers/noop
Package noop provides no-operation distributed lock for testing without external dependencies.
Package noop provides no-operation distributed lock for testing without external dependencies.
mongo
Package mongo provides a MongoDB client wrapper with CSFLE encryption, transaction handling, and structured logging.
Package mongo provides a MongoDB client wrapper with CSFLE encryption, transaction handling, and structured logging.
mongo/cursor_storages/kvstore
Package kvstore provides a common interface and adapter for key-value based cursor storage implementations.
Package kvstore provides a common interface and adapter for key-value based cursor storage implementations.
mongo/cursor_storages/memory
Package memory provides in-memory cursor storage for MongoDB pagination.
Package memory provides in-memory cursor storage for MongoDB pagination.
mongo/cursor_storages/nats
Package nats provides NATS JetStream KeyValue cursor storage for MongoDB pagination.
Package nats provides NATS JetStream KeyValue cursor storage for MongoDB pagination.
mongo/cursor_storages/redis
Package redis provides Redis cursor storage for MongoDB pagination.
Package redis provides Redis cursor storage for MongoDB pagination.
mongo/factory
Package factory provides configuration-based creation of cursor storages.
Package factory provides configuration-based creation of cursor storages.
mongo/kms
Package kms provides a unified KMS provider interface for MongoDB CSFLE.
Package kms provides a unified KMS provider interface for MongoDB CSFLE.
mongo/kms/aws
Package kmsaws provides AWS KMS integration for MongoDB CSFLE.
Package kmsaws provides AWS KMS integration for MongoDB CSFLE.
mongo/kms/azure
Package kmsazure provides Azure Key Vault integration for MongoDB CSFLE.
Package kmsazure provides Azure Key Vault integration for MongoDB CSFLE.
mongo/kms/factory
Package factory creates kms.Provider instances from config.MongoKMS configuration, routing to the appropriate cloud or local KMS implementation (AWS, Azure, GCP, local).
Package factory creates kms.Provider instances from config.MongoKMS configuration, routing to the appropriate cloud or local KMS implementation (AWS, Azure, GCP, local).
mongo/kms/gcp
Package kmsgcp provides Google Cloud KMS integration for MongoDB CSFLE.
Package kmsgcp provides Google Cloud KMS integration for MongoDB CSFLE.
mongo/kms/local
Package kmslocal provides local key management for MongoDB CSFLE.
Package kmslocal provides local key management for MongoDB CSFLE.
outbox
Package outbox implements the Transactional Outbox pattern for at-least-once event delivery guarantees.
Package outbox implements the Transactional Outbox pattern for at-least-once event delivery guarantees.
outbox/factory
Package factory provides configuration-based creation of generic outbox instances.
Package factory provides configuration-based creation of generic outbox instances.
outbox/store/mongo
Package outboxstore provides MongoDB implementation of outbox.Store.
Package outboxstore provides MongoDB implementation of outbox.Store.
probfilter
Package probfilter provides probabilistic data structures for optimizing existence checks.
Package probfilter provides probabilistic data structures for optimizing existence checks.
probfilter/bloom
Package bloom provides a Bloom filter implementation for probabilistic existence checks.
Package bloom provides a Bloom filter implementation for probabilistic existence checks.
probfilter/bloom/storages
Package storages defines the storage interface for Bloom filter backends.
Package storages defines the storage interface for Bloom filter backends.
probfilter/bloom/storages/memory
Package memory provides an in-memory Bloom filter storage implementation using the bits-and-blooms/bloom library.
Package memory provides an in-memory Bloom filter storage implementation using the bits-and-blooms/bloom library.
probfilter/bloom/storages/redis
Package redis provides a Redis-backed Bloom filter storage implementation using RedisBloom module BF.* commands.
Package redis provides a Redis-backed Bloom filter storage implementation using RedisBloom module BF.* commands.
probfilter/cuckoo
Package cuckoo provides a Cuckoo filter implementation for probabilistic existence checks.
Package cuckoo provides a Cuckoo filter implementation for probabilistic existence checks.
probfilter/cuckoo/storages
Package storages defines the storage interface for Cuckoo filter backends.
Package storages defines the storage interface for Cuckoo filter backends.
probfilter/cuckoo/storages/memory
Package memory provides an in-memory Cuckoo filter storage implementation using the seiflotfy/cuckoofilter library.
Package memory provides an in-memory Cuckoo filter storage implementation using the seiflotfy/cuckoofilter library.
probfilter/cuckoo/storages/redis
Package redis provides a Redis-backed Cuckoo filter storage implementation using RedisBloom module CF.* commands.
Package redis provides a Redis-backed Cuckoo filter storage implementation using RedisBloom module CF.* commands.
probfilter/factory
Package factory provides configuration-based creation of probabilistic filters.
Package factory provides configuration-based creation of probabilistic filters.
probfilter/stats
Package stats provides statistics types for probabilistic filters.
Package stats provides statistics types for probabilistic filters.
uniq
Package uniq provides unique value management with multiple storage backends (Redis, NATS, no-op).
Package uniq provides unique value management with multiple storage backends (Redis, NATS, no-op).
uniq/factory
Package factory provides configuration-based creation of unique value managers.
Package factory provides configuration-based creation of unique value managers.
uniq/providers
Package providers defines the Provider interface for unique value storage.
Package providers defines the Provider interface for unique value storage.
uniq/providers/nats
Package nats provides NATS JetStream KeyValue storage for distributed unique values.
Package nats provides NATS JetStream KeyValue storage for distributed unique values.
uniq/providers/noop
Package noop provides no-operation provider for testing without external dependencies.
Package noop provides no-operation provider for testing without external dependencies.
uniq/providers/redis
Package redis provides Redis storage for distributed unique values with TTL and prefix support.
Package redis provides Redis storage for distributed unique values with TTL and prefix support.
domain
converter
Package converter provides high-performance struct-to-struct conversion with field mapping, filtering, embedded structs, slices, maps, and protocol buffers.
Package converter provides high-performance struct-to-struct conversion with field mapping, filtering, embedded structs, slices, maps, and protocol buffers.
converter/codec
Package convcodec provides core types for custom conversion codecs and a chain execution engine.
Package convcodec provides core types for custom conversion codecs and a chain execution engine.
converter/codec/jsonpb
Package jsonpb provides a codec for bidirectional conversion between json.RawMessage and structpb.Struct.
Package jsonpb provides a codec for bidirectional conversion between json.RawMessage and structpb.Struct.
converter/codec/mapslice
Package mapslice provides codecs for converting map values or keys to slices.
Package mapslice provides codecs for converting map values or keys to slices.
converter/codec/oneof
Package oneof provides a codec for bidirectional conversion between struct-based oneof representations and protobuf oneof interface types.
Package oneof provides a codec for bidirectional conversion between struct-based oneof representations and protobuf oneof interface types.
converter/codec/pbwrap
Package pbwrap provides a codec for bidirectional conversion between protobuf wrapper types (wrapperspb.*) and primitive Go types.
Package pbwrap provides a codec for bidirectional conversion between protobuf wrapper types (wrapperspb.*) and primitive Go types.
converter/codec/tspb
Package tspb provides a codec for bidirectional conversion between timestamppb.Timestamp and time.Time or int64 Unix timestamps.
Package tspb provides a codec for bidirectional conversion between timestamppb.Timestamp and time.Time or int64 Unix timestamps.
converter/codec/unixtime
Package unixtime provides a codec for bidirectional conversion between time.Time and int64 Unix timestamps with optional millisecond precision.
Package unixtime provides a codec for bidirectional conversion between time.Time and int64 Unix timestamps with optional millisecond precision.
converter/internal/reflect
Package reflect provides low-level reflection utilities shared across the converter and its codec sub-packages.
Package reflect provides low-level reflection utilities shared across the converter and its codec sub-packages.
fieldtracker
Package fieldtracker detects changed fields between two struct instances.
Package fieldtracker detects changed fields between two struct instances.
normalizer
Package normalizer provides tag-based string normalization for struct fields.
Package normalizer provides tag-based string normalization for struct fields.
normalizer/modifiers
Package modifiers provides value transformation functions for the [normalizer] package.
Package modifiers provides value transformation functions for the [normalizer] package.
proto/fieldmask
Package fieldmask provides hierarchical field mask utilities for Protocol Buffers.
Package fieldmask provides hierarchical field mask utilities for Protocol Buffers.
validation/iso7064
Package iso7064 provides check-digit validation using the ISO 7064 MOD 11-10 algorithm for 9-digit numeric identifiers.
Package iso7064 provides check-digit validation using the ISO 7064 MOD 11-10 algorithm for 9-digit numeric identifiers.
infrastructure
mongo/factory
Package factory provides configuration-based creation of MongoDB clients.
Package factory provides configuration-based creation of MongoDB clients.
nats/factory
Package factory provides configuration-based creation of NATS connections and JetStream consumer configurations.
Package factory provides configuration-based creation of NATS connections and JetStream consumer configurations.
redis/factory
Package factory provides configuration-based creation of Redis clients.
Package factory provides configuration-based creation of Redis clients.
internal
testhelpers
Package testhelpers provides common testing utilities and helpers shared across the go-atlas project.
Package testhelpers provides common testing utilities and helpers shared across the go-atlas project.
observability
appstats
Package appstats provides high-performance application statistics monitoring.
Package appstats provides high-performance application statistics monitoring.
health
Package health provides transport-agnostic health check coordination and monitoring.
Package health provides transport-agnostic health check coordination and monitoring.
health/factory
Package factory provides configuration-based creation of health health.Coordinator instances.
Package factory provides configuration-based creation of health health.Coordinator instances.
internal/shared
Package shared provides common types and utilities for observability packages.
Package shared provides common types and utilities for observability packages.
metrics
Package metrics provides an abstract metrics collection system that is not tied to any specific format (Prometheus, StatsD, OpenTelemetry, etc.).
Package metrics provides an abstract metrics collection system that is not tied to any specific format (Prometheus, StatsD, OpenTelemetry, etc.).
metrics/adapters
Package adapters defines the Adapter interface for metrics backends.
Package adapters defines the Adapter interface for metrics backends.
metrics/adapters/prometheus
Package prometheus provides a Prometheus adapters.Adapter for the metrics system.
Package prometheus provides a Prometheus adapters.Adapter for the metrics system.
metrics/factory
Package factory provides configuration-based creation of metrics.Collector instances from config.Metrics.
Package factory provides configuration-based creation of metrics.Collector instances from config.Metrics.
slog
Package slog provides nil-safe attribute helpers, context integration, and advanced handlers for Go's log/slog.
Package slog provides nil-safe attribute helpers, context integration, and advanced handlers for Go's log/slog.
slog/factory
Package factory provides configuration-based creation of slog loggers.
Package factory provides configuration-based creation of slog loggers.
slog/handler/buffered
Package buffered provides an asynchronous slog.Handler that buffers log records and writes them via a background goroutine.
Package buffered provides an asynchronous slog.Handler that buffers log records and writes them via a background goroutine.
slog/handler/colorized
Package colorized provides a slog.Handler with color-coded terminal output.
Package colorized provides a slog.Handler with color-coded terminal output.
slog/handler/internal/base
Package base provides a base implementation for slog handler middlewares.
Package base provides a base implementation for slog handler middlewares.
slog/handler/masking
Package masking provides a slog.Handler that masks sensitive data in log records.
Package masking provides a slog.Handler that masks sensitive data in log records.
slog/handler/prefixed
Package prefixed provides a slog.Handler middleware that adds prefixes to log messages.
Package prefixed provides a slog.Handler middleware that adds prefixes to log messages.
tracing
Package tracing provides an abstract distributed tracing system that is not tied to any specific format (Jaeger, Zipkin, OpenTelemetry, etc.).
Package tracing provides an abstract distributed tracing system that is not tied to any specific format (Jaeger, Zipkin, OpenTelemetry, etc.).
tracing/adapters
Package adapters defines the Adapter interface for tracing backends.
Package adapters defines the Adapter interface for tracing backends.
tracing/adapters/console
Package console provides a console adapters.Adapter for tracing.
Package console provides a console adapters.Adapter for tracing.
tracing/adapters/otlp
Package otlp provides an OTLP adapters.Adapter for tracing.
Package otlp provides an OTLP adapters.Adapter for tracing.
tracing/factory
Package factory provides a factory for creating tracing.Tracer instances from config.Tracing configuration.
Package factory provides a factory for creating tracing.Tracer instances from config.Tracing configuration.
tracing/propagation
Package propagation provides context propagation for distributed tracing.
Package propagation provides context propagation for distributed tracing.
tracing/sampler
Package sampler provides sampling strategies for distributed tracing.
Package sampler provides sampling strategies for distributed tracing.
proto
security
secrets
Package secrets provides centralized secret management with automatic caching, comprehensive error handling, and real-time watch capabilities.
Package secrets provides centralized secret management with automatic caching, comprehensive error handling, and real-time watch capabilities.
secrets/codec
Package codec provides interfaces for encoding and decoding secret keys and values.
Package codec provides interfaces for encoding and decoding secret keys and values.
secrets/codec/keys/base64
Package base64 provides a KeyDecoder implementation using base64 URL-safe encoding.
Package base64 provides a KeyDecoder implementation using base64 URL-safe encoding.
secrets/codec/values/json
Package json provides a generic ValueDecoder implementation using JSON encoding.
Package json provides a generic ValueDecoder implementation using JSON encoding.
secrets/factory
Package factory provides configuration-based creation of secrets managers and providers.
Package factory provides configuration-based creation of secrets managers and providers.
secrets/internal/base
Package base provides common utilities and patterns for secret storage providers.
Package base provides common utilities and patterns for secret storage providers.
secrets/providers/gcp
Package gcp provides an implementation of the secrets.Provider interface for Google Cloud Platform's Secret Manager service.
Package gcp provides an implementation of the secrets.Provider interface for Google Cloud Platform's Secret Manager service.
secrets/providers/lockbox
Package lockbox provides an implementation of the secrets.Provider interface for Yandex Cloud Lockbox service.
Package lockbox provides an implementation of the secrets.Provider interface for Yandex Cloud Lockbox service.
secrets/providers/memory
Package memory provides an implementation of the secrets.Provider interface for in-memory secret storage.
Package memory provides an implementation of the secrets.Provider interface for in-memory secret storage.
secrets/providers/vault
Package vault provides an implementation of the secrets.Provider interface for HashiCorp Vault's Key-Value v2 engine.
Package vault provides an implementation of the secrets.Provider interface for HashiCorp Vault's Key-Value v2 engine.
tlsutils
Package tlsutils provides TLS certificate loading and secure configuration utilities.
Package tlsutils provides TLS certificate loading and secure configuration utilities.
tlsutils/factory
Package factory provides configuration-based creation of TLS configurations and providers.
Package factory provides configuration-based creation of TLS configurations and providers.
tlsutils/ocsp
Package ocsp provides OCSP stapling for TLS certificates with caching and compression.
Package ocsp provides OCSP stapling for TLS certificates with caching and compression.
tlsutils/providers
Package tlsproviders defines interfaces for TLS certificate providers.
Package tlsproviders defines interfaces for TLS certificate providers.
tlsutils/providers/file
Package tlsfile provides file-based TLS certificate provider with optional automatic reloading.
Package tlsfile provides file-based TLS certificate provider with optional automatic reloading.
tlsutils/providers/le
Package tlsle provides Let's Encrypt TLS certificate provider using HTTP-01 ACME challenges.
Package tlsle provides Let's Encrypt TLS certificate provider using HTTP-01 ACME challenges.
tlsutils/providers/vault
Package tlsvault provides HashiCorp Vault-based TLS certificate provider.
Package tlsvault provides HashiCorp Vault-based TLS certificate provider.
vault
Package vault provides high-level HashiCorp Vault client with pluggable authentication and automatic token renewal.
Package vault provides high-level HashiCorp Vault client with pluggable authentication and automatic token renewal.
vault/auth
Package auth provides pluggable authentication methods for HashiCorp Vault with automatic token renewal and lifecycle management.
Package auth provides pluggable authentication methods for HashiCorp Vault with automatic token renewal and lifecycle management.
vault/auth/approle
Package approle provides AppRole authentication for HashiCorp Vault.
Package approle provides AppRole authentication for HashiCorp Vault.
vault/auth/token
Package token provides direct token-based authentication for HashiCorp Vault.
Package token provides direct token-based authentication for HashiCorp Vault.
vault/auth/userpass
Package userpass provides username/password authentication for HashiCorp Vault.
Package userpass provides username/password authentication for HashiCorp Vault.
vault/factory
Package factory provides configuration-based creation of Vault clients.
Package factory provides configuration-based creation of Vault clients.
service
id
Package id provides stable, unique Service ID generation and management for distributed applications.
Package id provides stable, unique Service ID generation and management for distributed applications.
scheduler
Package scheduler provides an internal task scheduler for periodic job execution.
Package scheduler provides an internal task scheduler for periodic job execution.
scheduler/factory
Package factory builds scheduler.Scheduler instances and their scheduler.Storage backends from config.Scheduler and config.SchedulerStorageConfig configuration objects.
Package factory builds scheduler.Scheduler instances and their scheduler.Storage backends from config.Scheduler and config.SchedulerStorageConfig configuration objects.
scheduler/storages/memory
Package memory provides an in-memory implementation of scheduler.Storage for the scheduler service.
Package memory provides an in-memory implementation of scheduler.Storage for the scheduler service.
scheduler/storages/mongodb
Package mongodb implements scheduler.Storage using MongoDB as the backing store.
Package mongodb implements scheduler.Storage using MongoDB as the backing store.
scheduler/storages/redis
Package redis provides a Redis-backed implementation of the scheduler.Storage interface.
Package redis provides a Redis-backed implementation of the scheduler.Storage interface.
tools
codegen/goconfig command
Package main provides goconfig, a CLI tool for converting configuration files between formats.
Package main provides goconfig, a CLI tool for converting configuration files between formats.
codegen/goconfig/commands
Package commands wires the cobra root command for goconfig and registers all subcommands (currently convert).
Package commands wires the cobra root command for goconfig and registers all subcommands (currently convert).
codegen/goconfig/commands/convert
Package convert implements the "goconfig convert" subcommand and the converters that transform configuration files between YAML, TOML, .env, and Markdown formats.
Package convert implements the "goconfig convert" subcommand and the converters that transform configuration files between YAML, TOML, .env, and Markdown formats.
codegen/optgen command
Package main provides optgen, a code generator for the functional option pattern.
Package main provides optgen, a code generator for the functional option pattern.
codegen/optgen/commands
Package commands implements the cobra-based CLI for the optgen code generator.
Package commands implements the cobra-based CLI for the optgen code generator.
codegen/optgen/config
Package config loads and merges .optgen.yaml configuration files.
Package config loads and merges .optgen.yaml configuration files.
codegen/optgen/internal
Package internal provides the core implementation for the optgen code generator.
Package internal provides the core implementation for the optgen code generator.
codegen/optgen/internal/generator
Package generator produces Go source files containing functional-option functions for struct types annotated with opt tags.
Package generator produces Go source files containing functional-option functions for struct types annotated with opt tags.
codegen/optgen/internal/parser
Package parser extracts struct field metadata from Go AST packages for the optgen code generator.
Package parser extracts struct field metadata from Go AST packages for the optgen code generator.
codegen/optgen/internal/plugin/builtin
Package builtin provides shared helpers and template infrastructure used by the built-in optgen field-handler plugins.
Package builtin provides shared helpers and template infrastructure used by the built-in optgen field-handler plugins.
codegen/optgen/internal/plugin/builtin/check
Package check provides validation check plugins for optgen.
Package check provides validation check plugins for optgen.
codegen/optgen/internal/plugin/builtin/defaults
Package defaults provides type-default plugins that supply initial values for struct fields when the user has not specified an explicit default in the optgen tag.
Package defaults provides type-default plugins that supply initial values for struct fields when the user has not specified an explicit default in the optgen tag.
codegen/optgen/internal/plugin/builtin/fields
Package fields provides field-handler plugins that generate With* (or Without*) functional-option functions for each struct field.
Package fields provides field-handler plugins that generate With* (or Without*) functional-option functions for each struct field.
codegen/optgen/internal/plugin/builtin/guard
Package guard provides early-return guard plugins for optgen.
Package guard provides early-return guard plugins for optgen.
codegen/optgen/internal/plugin/builtin/postprocess
Package postprocess provides modifier plugins that run in plugin.PhasePostProcess, after transforms and before the final struct field assignment.
Package postprocess provides modifier plugins that run in plugin.PhasePostProcess, after transforms and before the final struct field assignment.
codegen/optgen/internal/plugin/builtin/transform
Package transform provides string-transformation plugins that wrap input expressions in standard library calls during code generation.
Package transform provides string-transformation plugins that wrap input expressions in standard library calls during code generation.
codegen/optgen/internal/validator
Package validator provides compile-safety checks for Go identifiers used in generated code.
Package validator provides compile-safety checks for Go identifiers used in generated code.
codegen/optgen/model
Package model defines the public data structures shared between optgen's parser, generator, and plugin subsystems.
Package model defines the public data structures shared between optgen's parser, generator, and plugin subsystems.
codegen/optgen/plugin
Package plugin defines the public extension API for the optgen code generator.
Package plugin defines the public extension API for the optgen code generator.
codegen/shared/rootcmd
Package rootcmd provides a reusable foundation for cobra-based CLI tools in the go-atlas codegen family.
Package rootcmd provides a reusable foundation for cobra-based CLI tools in the go-atlas codegen family.
transport
broker
Package broker provides a high-level message broker abstraction for reliable asynchronous communication.
Package broker provides a high-level message broker abstraction for reliable asynchronous communication.
broker/factory
Package factory provides configuration-based creation of message brokers from config structures.
Package factory provides configuration-based creation of message brokers from config structures.
broker/inprogress
Package inprogress provides a Manager that periodically sends InProgress heartbeats for messages being processed, preventing premature redelivery during long-running tasks.
Package inprogress provides a Manager that periodically sends InProgress heartbeats for messages being processed, preventing premature redelivery during long-running tasks.
broker/msg
Package msg defines the message envelope for broker systems.
Package msg defines the message envelope for broker systems.
broker/outbox
Package outbox provides a broker-specific adapter for the generic transactional outbox pattern.
Package outbox provides a broker-specific adapter for the generic transactional outbox pattern.
broker/providers/nats
Package natsprovider provides a NATS JetStream implementation of broker.Provider.
Package natsprovider provides a NATS JetStream implementation of broker.Provider.
broker/providers/nats/recovery
Package recovery provides automatic recovery for NATS JetStream streams and consumers.
Package recovery provides automatic recovery for NATS JetStream streams and consumers.
grpc
Package grpc provides gRPC server and client utilities for go-atlas services.
Package grpc provides gRPC server and client utilities for go-atlas services.
grpc/client
Package client provides a generic gRPC client with connection management, retry, health checking, and error handling.
Package client provides a generic gRPC client with connection management, retry, health checking, and error handling.
grpc/client/pool
Package pool provides gRPC client connection pooling with automatic cleanup and health monitoring.
Package pool provides gRPC client connection pooling with automatic cleanup and health monitoring.
grpc/handlers/health
Package health implements the gRPC health checking protocol (grpc_health_v1).
Package health implements the gRPC health checking protocol (grpc_health_v1).
grpc/handlers/scheduler
Package scheduler implements the gRPC SchedulerService defined in proto/scheduler/v1/scheduler.proto.
Package scheduler implements the gRPC SchedulerService defined in proto/scheduler/v1/scheduler.proto.
grpc/interceptors
Package interceptors provides a unified framework for gRPC interceptors.
Package interceptors provides a unified framework for gRPC interceptors.
grpc/interceptors/auth
Package auth provides gRPC interceptors for token-based authentication and scope-based authorization.
Package auth provides gRPC interceptors for token-based authentication and scope-based authorization.
grpc/interceptors/auth/oidc
Package oidc provides OIDC (OpenID Connect) token validation support for the auth interceptor.
Package oidc provides OIDC (OpenID Connect) token validation support for the auth interceptor.
grpc/interceptors/auth/oidc/validator
Package validator provides OIDC token validation and claims extraction functionality.
Package validator provides OIDC token validation and claims extraction functionality.
grpc/interceptors/cache
Package cache provides gRPC server interceptors for response caching with compression support.
Package cache provides gRPC server interceptors for response caching with compression support.
grpc/interceptors/cache/compression
Package compression provides high-performance gzip compression for cache operations.
Package compression provides high-performance gzip compression for cache operations.
grpc/interceptors/defaults
Package defaults provides shared default values for gRPC interceptors.
Package defaults provides shared default values for gRPC interceptors.
grpc/interceptors/driver
Package driver defines the core interfaces for the driven interceptor pattern.
Package driver defines the core interfaces for the driven interceptor pattern.
grpc/interceptors/errstatus
Package errstatus provides gRPC interceptors for consistent error-to-status and status-to-error conversion.
Package errstatus provides gRPC interceptors for consistent error-to-status and status-to-error conversion.
grpc/interceptors/health
Package health provides gRPC interceptors for service health checking.
Package health provides gRPC interceptors for service health checking.
grpc/interceptors/idempotency
Package idempotency provides gRPC interceptors for idempotent request handling.
Package idempotency provides gRPC interceptors for idempotent request handling.
grpc/interceptors/limiter
Package limiter provides gRPC interceptors for rate limiting incoming requests.
Package limiter provides gRPC interceptors for rate limiting incoming requests.
grpc/interceptors/logger
Package logger provides gRPC interceptors for comprehensive request and response logging.
Package logger provides gRPC interceptors for comprehensive request and response logging.
grpc/interceptors/metadata
Package metadata provides gRPC call metadata extraction and context injection.
Package metadata provides gRPC call metadata extraction and context injection.
grpc/interceptors/prometheus
Package prometheus provides comprehensive Prometheus metrics collection for gRPC servers.
Package prometheus provides comprehensive Prometheus metrics collection for gRPC servers.
grpc/interceptors/protovalidator
Package protovalidator provides gRPC interceptors for validating incoming protocol buffer messages.
Package protovalidator provides gRPC interceptors for validating incoming protocol buffer messages.
grpc/interceptors/realip
Package realip provides gRPC interceptors for extracting real client IP from proxy headers.
Package realip provides gRPC interceptors for extracting real client IP from proxy headers.
grpc/interceptors/recovery
Package recovery provides gRPC interceptors for recovering from panics in RPC handlers.
Package recovery provides gRPC interceptors for recovering from panics in RPC handlers.
grpc/interceptors/requestid
Package requestid provides gRPC interceptors for request ID generation and propagation.
Package requestid provides gRPC interceptors for request ID generation and propagation.
grpc/interceptors/tracing
Package tracing provides gRPC interceptors for distributed tracing.
Package tracing provides gRPC interceptors for distributed tracing.
grpc/server
Package grpc provides a production-ready gRPC server wrapper with graceful shutdown, TLS support, and reflection.
Package grpc provides a production-ready gRPC server wrapper with graceful shutdown, TLS support, and reflection.
grpc/server/factory
Package factory provides configuration-based creation of gRPC servers and interceptors.
Package factory provides configuration-based creation of gRPC servers and interceptors.
http/client
Package client provides a resilient HTTP client with automatic retries, circuit breaker protection, rate limiting, and SSRF safeguards.
Package client provides a resilient HTTP client with automatic retries, circuit breaker protection, rate limiting, and SSRF safeguards.
http/client/limiters
Package limiters provides a pluggable rate limiting layer for HTTP clients.
Package limiters provides a pluggable rate limiting layer for HTTP clients.
http/server
Package server provides an HTTP server with graceful shutdown, middleware support, and pluggable router implementations.
Package server provides an HTTP server with graceful shutdown, middleware support, and pluggable router implementations.
http/server/codec
Package codec provides HTTP body encoding/decoding with content negotiation.
Package codec provides HTTP body encoding/decoding with content negotiation.
http/server/codec/providers/json
Package json provides a JSON [codec.Codec] and [codec.StreamingEncoder] backed by encoding/json.
Package json provides a JSON [codec.Codec] and [codec.StreamingEncoder] backed by encoding/json.
http/server/codec/providers/xml
Package xml provides an XML [codec.Codec] backed by encoding/xml.
Package xml provides an XML [codec.Codec] backed by encoding/xml.
http/server/factory
Package factory provides configuration-based creation of HTTP servers and middleware.
Package factory provides configuration-based creation of HTTP servers and middleware.
http/server/handler
Package handler provides standard HTTP handlers for operational endpoints.
Package handler provides standard HTTP handlers for operational endpoints.
http/server/middlewares
Package middlewares provides HTTP middleware interfaces, utilities, and dependency-based ordering.
Package middlewares provides HTTP middleware interfaces, utilities, and dependency-based ordering.
http/server/middlewares/bodylimit
Package bodylimit provides middleware that rejects requests whose body exceeds a configured size limit.
Package bodylimit provides middleware that rejects requests whose body exceeds a configured size limit.
http/server/middlewares/cors
Package cors provides middleware for handling Cross-Origin Resource Sharing (CORS).
Package cors provides middleware for handling Cross-Origin Resource Sharing (CORS).
http/server/middlewares/defaults
Package defaults provides shared default configurations and constants for HTTP middlewares.
Package defaults provides shared default configurations and constants for HTTP middlewares.
http/server/middlewares/driver
Package driver provides the Driven Middleware pattern for HTTP middlewares.
Package driver provides the Driven Middleware pattern for HTTP middlewares.
http/server/middlewares/idempotency
Package idempotency provides middleware that prevents duplicate processing of non-safe HTTP requests (POST, PUT, PATCH, DELETE).
Package idempotency provides middleware that prevents duplicate processing of non-safe HTTP requests (POST, PUT, PATCH, DELETE).
http/server/middlewares/limiter
Package limiter provides middleware for per-request rate limiting.
Package limiter provides middleware for per-request rate limiting.
http/server/middlewares/logger
Package logger provides HTTP middleware for structured request/response logging.
Package logger provides HTTP middleware for structured request/response logging.
http/server/middlewares/prometheus
Package prometheus provides middleware that records Prometheus metrics for HTTP server requests.
Package prometheus provides middleware that records Prometheus metrics for HTTP server requests.
http/server/middlewares/realip
Package realip provides middleware that extracts the real client IP address from request headers and stores it in the request context.
Package realip provides middleware that extracts the real client IP address from request headers and stores it in the request context.
http/server/middlewares/recovery
Package recovery provides middleware that recovers from panics in HTTP handlers, logs the panic with a stack trace, and returns a 500 response.
Package recovery provides middleware that recovers from panics in HTTP handlers, logs the panic with a stack trace, and returns a 500 response.
http/server/middlewares/requestid
Package requestid provides middleware that extracts or generates a UUID v4 request ID for every HTTP request.
Package requestid provides middleware that extracts or generates a UUID v4 request ID for every HTTP request.
http/server/middlewares/securityheaders
Package securityheaders provides middleware for adding security-related HTTP headers.
Package securityheaders provides middleware for adding security-related HTTP headers.
http/server/middlewares/tracing
Package tracing provides HTTP middleware for distributed tracing.
Package tracing provides HTTP middleware for distributed tracing.
http/server/responder
Package responder provides unified error response handling for HTTP middleware and handlers.
Package responder provides unified error response handling for HTTP middleware and handlers.
http/server/router
Package router defines the Router and Route interfaces that abstract HTTP routing functionality.
Package router defines the Router and Route interfaces that abstract HTTP routing functionality.
http/server/router/gorilla
Package gorilla provides a router.Router implementation using gorilla/mux.
Package gorilla provides a router.Router implementation using gorilla/mux.
http/server/router/std
Package std provides a router.Router implementation using the standard library http.ServeMux with Go 1.22+ enhanced pattern matching.
Package std provides a router.Router implementation using the standard library http.ServeMux with Go 1.22+ enhanced pattern matching.
http/server/writer
Package writer provides HTTP response writing with content negotiation and request body decoding.
Package writer provides HTTP response writing with content negotiation and request body decoding.
internal/clientip
Package clientip extracts the real client IP address from HTTP and gRPC requests by traversing proxy header chains.
Package clientip extracts the real client IP address from HTTP and gRPC requests by traversing proxy header chains.
internal/depgraph
Package depgraph resolves ordering dependencies among interceptors and middlewares using topological sort (Kahn's algorithm).
Package depgraph resolves ordering dependencies among interceptors and middlewares using topological sort (Kahn's algorithm).
internal/endpointfilter
Package endpointfilter decides whether a given HTTP path or gRPC method should be excluded from middleware/interceptor processing (e.g.
Package endpointfilter decides whether a given HTTP path or gRPC method should be excluded from middleware/interceptor processing (e.g.
internal/fallback
Package fallback defines three error-handling strategies for middlewares and interceptors:
Package fallback defines three error-handling strategies for middlewares and interceptors:
internal/headers
Package headers centralizes HTTP and gRPC header name constants and provides adapter types that unify header access across transports.
Package headers centralizes HTTP and gRPC header name constants and provides adapter types that unify header access across transports.
internal/observability
Package observability provides shared structured-logging field keys and utilities used by both HTTP middlewares and gRPC interceptors.
Package observability provides shared structured-logging field keys and utilities used by both HTTP middlewares and gRPC interceptors.
internal/prometheus
Package prometheus provides shared Prometheus metrics building blocks for both HTTP and gRPC transports.
Package prometheus provides shared Prometheus metrics building blocks for both HTTP and gRPC transports.
internal/recovery
Package recovery captures stack traces during panic recovery and wraps the recovered value into a structured PanicError.
Package recovery captures stack traces during panic recovery and wraps the recovered value into a structured PanicError.
internal/requestid
Package requestid extracts, validates, and generates UUID v4 request identifiers from HTTP headers or gRPC metadata.
Package requestid extracts, validates, and generates UUID v4 request identifiers from HTTP headers or gRPC metadata.
internal/server
Package server provides the shared lifecycle primitives used by both the HTTP and gRPC server implementations.
Package server provides the shared lifecycle primitives used by both the HTTP and gRPC server implementations.
internal/timeouts
Package timeouts defines the timeout parameters that govern transport server lifecycle: startup verification, graceful shutdown deadline, and shutdown-progress warning interval.
Package timeouts defines the timeout parameters that govern transport server lifecycle: startup verification, graceful shutdown deadline, and shutdown-progress warning interval.
internal/validation
Package validation provides lightweight, allocation-free validators shared across the transport layer.
Package validation provides lightweight, allocation-free validators shared across the transport layer.

Jump to

Keyboard shortcuts

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