README ΒΆ
golib
An extremely opinionated set of modules
π§ 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 errors
or logger
packages,
which expose a simpler interface from what we're used to.
π©βπ» Provided modules
The errors
package lets you create contextual errors using a simplified contract.
The halt
package lets you handle graceful shutdowns.
The kv
package lets you define key-value pairs to be used in multiple situations.
The logger
package lets you log as you'd normally do, only a simplified contract is used.
The o11y
package contains functionality that opentelemetry
uses to ingest telemetry data.
The pubsub
package lets you publish and subscribe to messages.
π₯Ί What's next
Existing packages are subject to change. Semantic versioning is used, backwards compatibility will be kept. Different concrete implementations or packages will be added when needed.
Directories ΒΆ
Path | Synopsis |
---|---|
Package errors provides a way to generate contextual errors.
|
Package errors provides a way to generate contextual errors. |
Package halt exposes a convenience method to deal with graceful shutdowns.
|
Package halt exposes a convenience method to deal with graceful shutdowns. |
Package kv provides a way to work with keys and values.
|
Package kv provides a way to work with keys and values. |
Package logger provides a simplified logger to write log lines into a writer.
|
Package logger provides a simplified logger to write log lines into a writer. |
memory
Package memory is a io.Writer implementation to use when testing log lines being produced.
|
Package memory is a io.Writer implementation to use when testing log lines being produced. |
Package o11y contains functionality that opentelemetry uses to ingest telemetry data.
|
Package o11y contains functionality that opentelemetry uses to ingest telemetry data. |
Package pubsub is an abstraction of any publisher-subscriber mechanism.
|
Package pubsub is an abstraction of any publisher-subscriber mechanism. |
memory
Package memory provides an in-memory pubsub mechanism.
|
Package memory provides an in-memory pubsub mechanism. |
redis
Package redis provides a way to interact with redis streams.
|
Package redis provides a way to interact with redis streams. |