go-service

module
v2.280.0 Latest Latest
Warning

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

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

README

Gopher CircleCI codecov Go Report Card Go Reference

Go Service

A framework to build services in Go. This came out of us building services over the years and what we consider good practices in building services. Hence it is highly subjective and opinionated.

This framework stands on the shoulder of giants so we don't reinvent the wheel!

Dependency Injection

This framework heavily relies on DI. We have chosen to use Uber FX. So there is great information online to get you up to speed.

CLI

A service has commands that are configured using acmd. Each service has the following commands:

  • Server - These are long running apps, e.g. daemons.
  • Client - These are short lived apps, e.g. control.

These are configured in the main function.

Configuration

The supported configuration kinds are as follows:

The configuration can be read from multiple sources by specifying a flag called -i. As per the following:

  • env:CONFIG - Read from an env variable called CONFIG. The env variable must be a configuration and we expect the format of extension:content, where extension is the supported kinds and content contains the contents of the config that is base64 encoded.
  • file:path - Read from the path.
  • If all the above fails it will try common locations, such as:
    • The binary location.
    • The user config directory (os.UserConfigDir()) under <serviceName>/.
    • The /etc folder.

The reason for this is that we want to be able to separate how configuration is retrieved.

This is the configuration. We will outline the config required in each section. The following configuration examples will use YAML.

Environment

You can specify the environment of the service.

Paths

In any of the configurations where a path is specified we allow the following:

  • env:CONFIG - Read from an environment variable.
  • file:path - Read from a file path.
  • string - Any arbitrary string.
Environment Configuration

To configure, please specify the following:

environment: development

Compression

We support the following:

Encoders

We support the following:

Caching

The framework currently supports the following caching solutions from the awesome Cachego.

Cache Configuration

To configure, please specify the following:

cache:
  kind: redis | sync
  compressor: none | s2 | zstd | snappy
  encoder: json | toml | yaml | proto | gob
  options:
    url: path to url

Feature

The framework supports OpenFeature.

Feature Configuration

To configure, please specify the following:

feature:
  address: localhost:9000
  retry:
    backoff: 100ms
    timeout: 1s
    attempts: 3
  timeout: 10s

Hooks

The framework supports Standard Webhooks.

Hooks Configuration

To configure, please specify the following:

hooks:
  secret: path to secret

ID

The framework supports the generation of ids. The following are supported:

ID Configuration

To configure, please specify the following:

id:
  kind: uuid | ksuid | nanoid | ulid | xid

Runtime

We enhance the runtime with the following:

SQL

For SQL databases we support the following:

We also support master, slave combinations with the awesome mssqlx.

SQL Configuration

To configure, please specify the following:

sql:
  pg:
    masters:
      -
        url: path to url
    slaves:
      -
        url: path to url
    max_open_conns: 5
    max_idle_conns: 5
    conn_max_lifetime: 1h
Dependencies

Dependencies

Health

The health package is based on go-health. This package allows us to create all sorts of ways to check external and internal systems.

We also provide ways to integrate into container integration systems. So we provide the following endpoints:

  • /name/healthz - This allows us to check any external dependency and provide a breakdown of what is not functioning. This should only be used for verification.
  • /name/livez: Can be used for k8s liveness.
  • /name/readyz: Can be used for k8s readiness.

This is modelled around Kubernetes API health endpoints.

Telemetry

Telemetry is broken down in the following sections:

Logging

For logging we use slog.

Logging Configuration

We have multiple options for logging.

JSON

To configure, please specify the following:

telemetry:
  logger:
    kind: json
    level: info
Text

To configure, please specify the following:

telemetry:
  logger:
    kind: text
    level: info
Logger OTLP

To configure, please specify the following:

telemetry:
  logger:
    kind: otlp
    level: info
    url: http://localhost:3100/loki/api/v1/push
    headers:
      Authorization: path to key
Metrics

For metrics we support the following:

Metrics Configuration

Below is the configuration for each system.

Prometheus

To configure, please specify the following:

telemetry:
  metrics:
    kind: prometheus
Metrics OTLP

To configure, please specify the following:

telemetry:
  metrics:
    kind: otlp
    url: http://localhost:9009/otlp/v1/metrics
    headers:
      Authorization: path to key
Trace

For distributed tracing we support the following:

Trace Configuration

Below is the configuration for each system.

Trace OTLP

To configure, please specify the following:

telemetry:
  tracer:
    kind: otlp
    url: http://localhost:4318/v1/traces
    headers:
      Authorization: path to key
Telemetry Libraries
Telemetry Dependencies

Dependencies

Token

The framework allows you to define different token generators and verifiers.

Access

We have support for different access controls using casbin.

JWT

We use the awesome JWT.

Paseto

We use the awesome Paseto.

SSH

We use the awesome SSH.

Limiter

The framework allows you to define a limiter. This will be applied to the different transports.

The different kinds are:

Time

The framework allows you to use network time services. We use:

Time Configuration

To configure, please specify the following:

time:
  kind: nts
  address: time.cloudflare.com

Transport

The transport layer provides ways to abstract communication for in/out of the service. So we have the following integrations:

gRPC

Below is list of the provided interceptors:

REST

Below is list of the provided handlers:

Transport Configuration

To configure, please specify the following:

transport:
  http:
    address: tcp://localhost:8000
    retry:
      backoff: 100ms
      timeout: 1s
      attempts: 3
    timeout: 10s
    options:
      read_timeout: 10s
      write_timeout: 10s
      idle_timeout: 10s
      read_header_timeout: 10s
  grpc:
    address: tcp://localhost:9000
    retry:
      backoff: 100ms
      timeout: 1s
      attempts: 3
    timeout: 10s
    options:
      keepalive_enforcement_policy_ping_min_time: 10s
      keepalive_max_connection_idle: 10s
      keepalive_max_connection_age: 10s
      keepalive_max_connection_age_grace: 10s
      keepalive_ping_time: 10s

If you would like to enable TLS, do the following:

transport:
  http:
    tls:
      cert: path of cert
      key: path of key
  grpc:
    tls:
      cert: path of cert
      key: path of key

If you would like to enable a limiter, do the following:

transport:
  http:
    limiter:
      kind: user-agent
      tokens: 10
      interval: 1s
  grpc:
    limiter:
      kind: user-agent
      tokens: 10
      interval: 1s
Transport Token Access

To configure, please specify the following:

transport:
  http:
    token:
      access:
        policy: path to policy file
  grpc:
    token:
      access:
        policy: path to policy file

The model is based on the following config.

Transport Token JWT

To configure, please specify the following:

transport:
  http:
    token:
      kind: jwt
      jwt:
        iss: issuer
        exp: 1h
        kid: 1234567890
  grpc:
    token:
      kind: jwt
      jwt:
        iss: issuer
        exp: 1h
        kid: 1234567890
Transport Token Paseto

To configure, please specify the following:

transport:
  http:
    token:
      kind: paseto
      paseto:
        iss: issuer
        exp: 1h
  grpc:
    token:
      kind: paseto
      paseto:
        iss: issuer
        exp: 1h
Transport Token SSH

To verify, please specify the following:

transport:
  http:
    token:
      kind: ssh
      ssh:
        keys:
          - name: test
            public: path to key
  grpc:
    token:
      kind: ssh
      ssh:
        keys:
          - name: test
            public: path to key
Transport Dependencies

Dependencies

Cryptography

The crypto package provides sensible defaults for symmetric, asymmetric, hashing and randomness.

We rely on the awesome crypto.

Cryptography Configuration

To configure, please specify the following:

crypto:
  aes:
    key: path to the key
  ed25519:
    public: path to the public
    private: path to the private
  hmac:
    key: path to the key
  rsa:
    public: path to the public
    private: path to the private
  ssh:
    public: path to the public
    private: path to the private
Cryptography Dependencies

Dependencies

Debug

This section outlines all utilities added for your troubleshooting abilities.

statsviz
GET http://localhost:6060/debug/statsviz

Check out statsviz.

pprof
GET http://localhost:6060/debug/pprof/
GET http://localhost:6060/debug/pprof/cmdline
GET http://localhost:6060/debug/pprof/profile
GET http://localhost:6060/debug/pprof/symbol
GET http://localhost:6060/debug/pprof/trace

Check out pprof.

fgprof
GET http://localhost:6060/debug/fgprof?seconds=10

Check out fgprof.

gopsutil
GET http://localhost:6060/debug/psutil

Check out gopsutil.

Debug Configuration

To configure, please specify the following:

debug:
  address: tcp://localhost:6060
  timeout: 10s

If you would like to enable TLS, do the following:

debug:
  tls:
    cert: path of cert
    key: path of key

Development

This section describes how to run and contribute to the project, if you are interested.

Style

We favour what is defined in the Uber Go Style Guide.

Development Dependencies

Please setup the following:

Setup

To get yourself setup, please run:

git submodule sync
git submodule update --init

mkcert -install
make create-certs

make dep
Development Environment

As we rely on external services these need to be configured:

Starting

Please run:

make start
Stopping

Please run:

make stop
Testing

To be able to test locally, please run:

make specs

Directories

Path Synopsis
Package breaker provides circuit breaker helpers and defaults used by go-service.
Package breaker provides circuit breaker helpers and defaults used by go-service.
Package bytes provides byte slice helpers used across go-service.
Package bytes provides byte slice helpers used across go-service.
Package cache provides cache abstractions, configuration, and drivers for go-service.
Package cache provides cache abstractions, configuration, and drivers for go-service.
config
Package config provides cache configuration types for go-service.
Package config provides cache configuration types for go-service.
driver
Package driver provides cache driver constructors for go-service.
Package driver provides cache driver constructors for go-service.
Package cli provides helpers for building CLI applications with go-service.
Package cli provides helpers for building CLI applications with go-service.
Package compress provides compression abstractions and wiring for go-service.
Package compress provides compression abstractions and wiring for go-service.
none
Package none provides a no-op compression codec for go-service.
Package none provides a no-op compression codec for go-service.
s2
Package s2 provides an S2 compression codec for go-service.
Package s2 provides an S2 compression codec for go-service.
snappy
Package snappy provides a Snappy compression codec for go-service.
Package snappy provides a Snappy compression codec for go-service.
zstd
Package zstd provides a Zstandard (zstd) compression codec for go-service.
Package zstd provides a Zstandard (zstd) compression codec for go-service.
Package config provides configuration decoding and wiring for go-service.
Package config provides configuration decoding and wiring for go-service.
client
Package client provides client-side configuration helpers for go-service.
Package client provides client-side configuration helpers for go-service.
options
Package options provides helpers for working with configuration option key-value pairs.
Package options provides helpers for working with configuration option key-value pairs.
server
Package server provides server-side configuration helpers for go-service.
Package server provides server-side configuration helpers for go-service.
Package context provides small wrappers and aliases around the standard library context package.
Package context provides small wrappers and aliases around the standard library context package.
Package crypto provides cryptographic helpers and wiring used by go-service.
Package crypto provides cryptographic helpers and wiring used by go-service.
aes
Package aes provides AES-GCM encryption helpers and wiring for go-service.
Package aes provides AES-GCM encryption helpers and wiring for go-service.
bcrypt
Package bcrypt provides bcrypt password hashing helpers for go-service.
Package bcrypt provides bcrypt password hashing helpers for go-service.
ed25519
Package ed25519 provides Ed25519 key generation, signing, and verification helpers for go-service.
Package ed25519 provides Ed25519 key generation, signing, and verification helpers for go-service.
errors
Package errors provides crypto-specific error values shared across go-service crypto helpers.
Package errors provides crypto-specific error values shared across go-service crypto helpers.
hmac
Package hmac provides HMAC signing and verification helpers for go-service.
Package hmac provides HMAC signing and verification helpers for go-service.
pem
Package pem provides PEM decoding helpers used by go-service.
Package pem provides PEM decoding helpers used by go-service.
rand
Package rand provides cryptographically secure random helpers and wiring for go-service.
Package rand provides cryptographically secure random helpers and wiring for go-service.
rsa
Package rsa provides RSA key loading, encryption, and decryption helpers for go-service.
Package rsa provides RSA key loading, encryption, and decryption helpers for go-service.
ssh
Package ssh provides Ed25519 SSH key loading and signing/verification helpers for go-service.
Package ssh provides Ed25519 SSH key loading and signing/verification helpers for go-service.
tls
Package tls provides helpers for constructing `crypto/tls` configurations from go-service config.
Package tls provides helpers for constructing `crypto/tls` configurations from go-service config.
database
sql
Package sql provides SQL database wiring and helpers for go-service.
Package sql provides SQL database wiring and helpers for go-service.
sql/config
Package config provides SQL database configuration types for go-service.
Package config provides SQL database configuration types for go-service.
sql/driver
Package driver provides SQL driver registration and adapter helpers for go-service.
Package driver provides SQL driver registration and adapter helpers for go-service.
sql/pg
Package pg provides SQL database wiring and helpers for go-service.
Package pg provides SQL database wiring and helpers for go-service.
Package debug provides debug endpoints and profiling helpers for go-service.
Package debug provides debug endpoints and profiling helpers for go-service.
fgprof
Package fgprof provides Fx wiring to expose fgprof profiling over HTTP.
Package fgprof provides Fx wiring to expose fgprof profiling over HTTP.
http
Package http provides debug HTTP endpoints for go-service.
Package http provides debug HTTP endpoints for go-service.
pprof
Package pprof provides Fx wiring to expose net/http/pprof profiling endpoints.
Package pprof provides Fx wiring to expose net/http/pprof profiling endpoints.
psutil
Package psutil provides debug endpoints and profiling helpers for go-service.
Package psutil provides debug endpoints and profiling helpers for go-service.
statsviz
Package statsviz provides Fx wiring to expose statsviz diagnostics over HTTP.
Package statsviz provides Fx wiring to expose statsviz diagnostics over HTTP.
Package di provides small wrappers around Uber Fx/Dig to standardize dependency injection wiring.
Package di provides small wrappers around Uber Fx/Dig to standardize dependency injection wiring.
Package encoding provides encoding helpers and adapters used by go-service.
Package encoding provides encoding helpers and adapters used by go-service.
base64
Package base64 provides encoding helpers and adapters used by go-service.
Package base64 provides encoding helpers and adapters used by go-service.
bytes
Package bytes provides byte-oriented encoding helpers and adapters used by go-service.
Package bytes provides byte-oriented encoding helpers and adapters used by go-service.
errors
Package errors provides encoding helpers and adapters used by go-service.
Package errors provides encoding helpers and adapters used by go-service.
gob
Package gob provides Gob encoding helpers and adapters used by go-service.
Package gob provides Gob encoding helpers and adapters used by go-service.
json
Package json provides JSON encoding helpers and adapters used by go-service.
Package json provides JSON encoding helpers and adapters used by go-service.
proto
Package proto provides Protocol Buffers (protobuf) encoding helpers and adapters used by go-service.
Package proto provides Protocol Buffers (protobuf) encoding helpers and adapters used by go-service.
toml
Package toml provides TOML encoding helpers and adapters used by go-service.
Package toml provides TOML encoding helpers and adapters used by go-service.
yaml
Package yaml provides YAML encoding helpers and adapters used by go-service.
Package yaml provides YAML encoding helpers and adapters used by go-service.
Package env provides service identity values derived from environment variables and defaults.
Package env provides service identity values derived from environment variables and defaults.
Package errors provides small error helpers used across go-service.
Package errors provides small error helpers used across go-service.
Package feature provides OpenFeature wiring and helpers for go-service.
Package feature provides OpenFeature wiring and helpers for go-service.
Package flag provides helpers for defining and parsing flags in go-service.
Package flag provides helpers for defining and parsing flags in go-service.
Package health provides health server wiring for go-service.
Package health provides health server wiring for go-service.
checker
Package checker provides health check primitives used by go-service.
Package checker provides health check primitives used by go-service.
Package hooks provides Standard Webhooks helpers and wiring for go-service.
Package hooks provides Standard Webhooks helpers and wiring for go-service.
id
Package id provides ID generation helpers (and adapters) used by go-service.
Package id provides ID generation helpers (and adapters) used by go-service.
ksuid
Package ksuid provides KSUID-based ID generation helpers used by go-service.
Package ksuid provides KSUID-based ID generation helpers used by go-service.
nanoid
Package nanoid provides NanoID-based ID generation helpers used by go-service.
Package nanoid provides NanoID-based ID generation helpers used by go-service.
ulid
Package ulid provides ULID-based ID generation helpers used by go-service.
Package ulid provides ULID-based ID generation helpers used by go-service.
uuid
Package uuid provides UUID-based ID generation helpers used by go-service.
Package uuid provides UUID-based ID generation helpers used by go-service.
xid
Package xid provides XID-based ID generation helpers used by go-service.
Package xid provides XID-based ID generation helpers used by go-service.
internal
Package io provides small wrappers and helpers around the standard library io package.
Package io provides small wrappers and helpers around the standard library io package.
Package limiter provides rate limiting primitives used by go-service.
Package limiter provides rate limiting primitives used by go-service.
Package meta provides context-scoped metadata storage and helpers for go-service.
Package meta provides context-scoped metadata storage and helpers for go-service.
Package mime defines common MIME media type constants used by go-service.
Package mime defines common MIME media type constants used by go-service.
Package module provides top-level Fx module composition for go-service.
Package module provides top-level Fx module composition for go-service.
net
Package net provides small network helpers and wrappers used by go-service.
Package net provides small network helpers and wrappers used by go-service.
grpc
Package grpc provides small gRPC wrappers and helpers around google.golang.org/grpc.
Package grpc provides small gRPC wrappers and helpers around google.golang.org/grpc.
grpc/codes
Package codes provides aliases for gRPC status codes used by go-service.
Package codes provides aliases for gRPC status codes used by go-service.
grpc/config
Package config contains gRPC transport configuration types used by go-service.
Package config contains gRPC transport configuration types used by go-service.
grpc/server
Package server provides gRPC server configuration and helper types for go-service.
Package server provides gRPC server configuration and helper types for go-service.
grpc/status
Package status provides helpers for working with gRPC status errors in go-service.
Package status provides helpers for working with gRPC status errors in go-service.
http
Package http provides small HTTP wrappers and helpers around the standard library net/http package.
Package http provides small HTTP wrappers and helpers around the standard library net/http package.
http/client
Package client provides HTTP client configuration and helper types for go-service.
Package client provides HTTP client configuration and helper types for go-service.
http/config
Package config contains HTTP transport configuration types used by go-service.
Package config contains HTTP transport configuration types used by go-service.
http/content
Package content contains HTTP content helpers used by go-service.
Package content contains HTTP content helpers used by go-service.
http/errors
Package errors provides HTTP-specific error helpers for go-service.
Package errors provides HTTP-specific error helpers for go-service.
http/meta
Package meta provides HTTP-specific metadata helpers for go-service.
Package meta provides HTTP-specific metadata helpers for go-service.
http/mvc
Package mvc provides a small MVC-style HTML rendering layer for go-service HTTP servers.
Package mvc provides a small MVC-style HTML rendering layer for go-service HTTP servers.
http/rest
Package rest provides REST-style HTTP handler registration and client helpers for go-service.
Package rest provides REST-style HTTP handler registration and client helpers for go-service.
http/rpc
Package rpc provides RPC-style HTTP handler registration and client helpers for go-service.
Package rpc provides RPC-style HTTP handler registration and client helpers for go-service.
http/server
Package server provides HTTP server configuration and helper types for go-service.
Package server provides HTTP server configuration and helper types for go-service.
http/status
Package status provides helpers for working with HTTP status codes and status errors in go-service.
Package status provides helpers for working with HTTP status codes and status errors in go-service.
server
Package server provides network server helpers used by go-service.
Package server provides network server helpers used by go-service.
Package os provides filesystem and OS-related helpers used by go-service.
Package os provides filesystem and OS-related helpers used by go-service.
Package retry provides retry configuration shared across go-service.
Package retry provides retry configuration shared across go-service.
Package runtime provides runtime-related helpers used by go-service.
Package runtime provides runtime-related helpers used by go-service.
Package strings provides string helpers and small wrappers around the standard library strings package.
Package strings provides string helpers and small wrappers around the standard library strings package.
Package sync provides synchronization helpers and wrappers used by go-service.
Package sync provides synchronization helpers and wrappers used by go-service.
Package telemetry provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
Package telemetry provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
attributes
Package attributes provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
Package attributes provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
errors
Package errors provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
Package errors provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
header
Package header provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
Package header provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
logger
Package logger provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
Package logger provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
metrics
Package metrics provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
Package metrics provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
tracer
Package tracer provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
Package tracer provides telemetry helpers and wiring (tracing, metrics, logging) for go-service.
Package time provides time-related helpers and abstractions used by go-service.
Package time provides time-related helpers and abstractions used by go-service.
Package token provides token generation and verification helpers used by go-service.
Package token provides token generation and verification helpers used by go-service.
access
Package access provides access control helpers used by go-service.
Package access provides access control helpers used by go-service.
jwt
Package jwt provides JWT token generation and verification for go-service.
Package jwt provides JWT token generation and verification for go-service.
paseto
Package paseto provides PASETO token generation and verification for go-service.
Package paseto provides PASETO token generation and verification for go-service.
ssh
Package ssh provides SSH-style token generation and verification for go-service.
Package ssh provides SSH-style token generation and verification for go-service.
Package transport contains shared transport wiring and helpers for services built with go-service.
Package transport contains shared transport wiring and helpers for services built with go-service.
grpc
Package grpc contains gRPC transport wiring for services built with go-service.
Package grpc contains gRPC transport wiring for services built with go-service.
grpc/breaker
Package breaker provides gRPC circuit breaker interceptors and wiring for go-service.
Package breaker provides gRPC circuit breaker interceptors and wiring for go-service.
grpc/health
Package health provides gRPC health transport wiring for go-service.
Package health provides gRPC health transport wiring for go-service.
grpc/limiter
Package limiter provides gRPC rate limiter interceptors and wiring for go-service.
Package limiter provides gRPC rate limiter interceptors and wiring for go-service.
grpc/meta
Package meta provides gRPC metadata interceptors and helpers for go-service.
Package meta provides gRPC metadata interceptors and helpers for go-service.
grpc/retry
Package retry provides gRPC retry interceptors and wiring for go-service.
Package retry provides gRPC retry interceptors and wiring for go-service.
grpc/telemetry/logger
Package logger provides gRPC logging interceptors and wiring for go-service.
Package logger provides gRPC logging interceptors and wiring for go-service.
grpc/token
Package token provides gRPC token interceptors and wiring for go-service.
Package token provides gRPC token interceptors and wiring for go-service.
header
Package header provides helpers for working with transport-related headers in go-service.
Package header provides helpers for working with transport-related headers in go-service.
http
Package http provides the HTTP transport wiring for services built with this module.
Package http provides the HTTP transport wiring for services built with this module.
http/breaker
Package breaker provides HTTP circuit breaker middleware for go-service.
Package breaker provides HTTP circuit breaker middleware for go-service.
http/events
Package events provides CloudEvents HTTP sender/receiver wiring for go-service.
Package events provides CloudEvents HTTP sender/receiver wiring for go-service.
http/events/hooks
Package hooks provides HTTP event hook middleware for go-service.
Package hooks provides HTTP event hook middleware for go-service.
http/health
Package health provides HTTP health transport wiring for go-service.
Package health provides HTTP health transport wiring for go-service.
http/hooks
Package hooks provides HTTP webhook hook middleware and wiring for go-service.
Package hooks provides HTTP webhook hook middleware and wiring for go-service.
http/limiter
Package limiter provides HTTP rate limiter middleware and wiring for go-service.
Package limiter provides HTTP rate limiter middleware and wiring for go-service.
http/meta
Package meta provides HTTP metadata middleware and wiring for go-service.
Package meta provides HTTP metadata middleware and wiring for go-service.
http/retry
Package retry provides HTTP retry middleware and wiring for go-service.
Package retry provides HTTP retry middleware and wiring for go-service.
http/telemetry/logger
Package logger provides HTTP logging middleware and wiring for go-service.
Package logger provides HTTP logging middleware and wiring for go-service.
http/telemetry/metrics
Package metrics provides HTTP metrics endpoint wiring for go-service.
Package metrics provides HTTP metrics endpoint wiring for go-service.
http/token
Package token provides HTTP token middleware and wiring for go-service.
Package token provides HTTP token middleware and wiring for go-service.
strings
Package strings provides string helpers used by transport packages in go-service.
Package strings provides string helpers used by transport packages in go-service.
types
ptr
Package ptr provides small generic helpers for ptr types.
Package ptr provides small generic helpers for ptr types.
slices
Package slices provides small generic helpers for slices types.
Package slices provides small generic helpers for slices types.
structs
Package structs provides small generic helpers for structs types.
Package structs provides small generic helpers for structs types.

Jump to

Keyboard shortcuts

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