package pkg is a collection of Go packages that provide a layer of convenience over the stdlib.
Helps build http clients with standard functionality such as error handling, tracing, timeouts, request signatures, json encoding and decoding, etc.
Implements an a linear-time counting algorithm, also known as "linear counting".
A simple mock server implementation, useful for mocking external services in tests.
Defines the httpx.Handler interface, an httpx.Handler router, and a variety of middleware.
Defines a context aware structured leveled logger.
Defines an interface for metrics, with an implementation for Datadog.
Defines an interface for error reporting, with implementations for honeybadger, newrelic, and rollbar.
Provides the ability to retry a function call with exponential backoff and notification hooks.
Provides types that make it easier to perform streaming IO.
Provides tooling that integrates with all of the above packages to build http servers with logging, distributed tracing, error reporting and metrics out of the box.
Use instead of time.Now to allow easy stubbing in tests.
Lightweight convenience stuff around pprof and Google Cloud Profiler for visibility into all our apps.
For examples of usage, see the example directory.