https://github.com/thisiserico/golib
An extremely opinionated set of go modules to help keep some consistency between apps 🔬
https://github.com/thisiserico/golib
errors go key-value logger pubsub
Last synced: 5 months ago
JSON representation
An extremely opinionated set of go modules to help keep some consistency between apps 🔬
- Host: GitHub
- URL: https://github.com/thisiserico/golib
- Owner: thisiserico
- License: gpl-3.0
- Created: 2019-09-06T00:03:29.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2023-02-12T18:01:51.000Z (over 3 years ago)
- Last Synced: 2024-06-21T09:42:39.486Z (about 2 years ago)
- Topics: errors, go, key-value, logger, pubsub
- Language: Go
- Homepage:
- Size: 148 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# golib
> An extremely opinionated set of modules
[](https://pkg.go.dev/mod/github.com/thisiserico/golib?tab=packages)
## 🧐 Motivation
When kicking off a new project, often times engineers decide not to care about consistency, debuggability and other little details that are not completely necessary to "deliver".
This set of modules provide exactly that: a way to keep things consistent without getting in your way.
At the same time, it provides an opinionated way on how certain elements should look like. Examples are the [`oops`][oops] or [`logger`][logger] packages,
which expose a simpler interface from what we're used to.
## 👩💻 Provided modules
The [`halt`][halt] package lets you handle graceful shutdowns.
The [`kv`][kv] package lets you define key-value pairs to be used in multiple situations.
The [`logger`][logger] package lets you log as you'd normally do, only a simplified contract is used.
The [`o11y`][o11y] package contains functionality that [`opentelemetry`][opentelemetry] uses to ingest telemetry data.
The [`oops`][oops] package lets you create contextual errors using a simplified contract.
The [`pubsub`][pubsub] package lets you publish and subscribe to messages.
## 🥺 What's next
Existing packages are subject to change.
[Semantic versioning][semver] is used, backwards compatibility will be kept.
Different concrete implementations or packages will be added when needed.
[opentelemetry]: https://pkg.go.dev/go.opentelemetry.io
[halt]: https://pkg.go.dev/github.com/thisiserico/golib/halt
[kv]: https://pkg.go.dev/github.com/thisiserico/golib/kv
[logger]: https://pkg.go.dev/github.com/thisiserico/golib/logger
[o11y]: https://pkg.go.dev/github.com/thisiserico/golib/o11y
[oops]: https://pkg.go.dev/github.com/thisiserico/golib/oops
[pubsub]: https://pkg.go.dev/github.com/thisiserico/golib/pubsub
[semver]: https://semver.org