https://github.com/remind101/pkg
A layer of convenience over the Go stdlib
https://github.com/remind101/pkg
Last synced: 11 months ago
JSON representation
A layer of convenience over the Go stdlib
- Host: GitHub
- URL: https://github.com/remind101/pkg
- Owner: remind101
- License: bsd-2-clause
- Created: 2015-04-01T23:56:47.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-04-19T12:58:48.000Z (over 2 years ago)
- Last Synced: 2025-04-05T20:02:00.166Z (over 1 year ago)
- Language: Go
- Homepage: https://godoc.org/github.com/remind101/pkg
- Size: 11.3 MB
- Stars: 22
- Watchers: 74
- Forks: 1
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# [remind101/pkg](https://github.com/remind101/pkg) [](https://circleci.com/gh/remind101/pkg) [](https://godoc.org/github.com/remind101/pkg)
package pkg is a collection of Go packages that provide a layer of convenience over the stdlib.
## Packages
### [client](./client)
Helps build http clients with standard functionality such as error handling, tracing, timeouts,
request signatures, json encoding and decoding, etc.
### [counting](./counting)
Implements an a linear-time counting algorithm, also known as "linear counting".
### [httpmock](./httpmock)
A simple mock server implementation, useful for mocking external services in tests.
### [httpx](./httpx)
Defines the httpx.Handler interface, an httpx.Handler router, and a variety of middleware.
### [logger](./logger)
Defines a context aware structured leveled logger.
### [metrics](./metrics)
Defines an interface for metrics, with an implementation for Datadog.
### [reporter](./reporter)
Defines an interface for error reporting, with implementations for honeybadger, newrelic, and rollbar.
### [retry](./retry)
Provides the ability to retry a function call with exponential backoff and notification hooks.
### [stream](./stream)
Provides types that make it easier to perform streaming IO.
### [svc](./svc)
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.
### [timex](./timex)
Use instead of time.Now to allow easy stubbing in tests.
### [profiling](./profiling)
Lightweight convenience stuff around
[pprof](https://golang.org/pkg/runtime/pprof/) and
[Google Cloud Profiler](https://cloud.google.com/profiler/docs) for visibility
into all our apps.
## Usage
For examples of usage, see the **[example](./example)** directory.