Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/telkomindonesia/go-boilerplate
Golang Boilerplate
https://github.com/telkomindonesia/go-boilerplate
golang-boilerplate golang-examples golang-package
Last synced: 2 months ago
JSON representation
Golang Boilerplate
- Host: GitHub
- URL: https://github.com/telkomindonesia/go-boilerplate
- Owner: TelkomIndonesia
- Created: 2024-03-06T04:01:41.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-09-29T08:53:23.000Z (3 months ago)
- Last Synced: 2024-10-12T14:02:45.185Z (2 months ago)
- Topics: golang-boilerplate, golang-examples, golang-package
- Language: Go
- Homepage:
- Size: 753 KB
- Stars: 6
- Watchers: 3
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Go Boilerplate
![Package Dependency](./diagram.svg)
Features:
- [x] Database (postgres) with Encryption at Rest (tink)
- [x] Derivable encryption key.
- [x] Rotatable encription key.
- [x] Blind index as bloom filter for exact match.
- [x] Outbox pattern (kafka + cloudevent + protobuf).
- [x] Query-to-code generator (SQLC).
- [x] HTTP API
- [x] OpenAPI-to-code generator (oapi-codegen).
- [x] Auto Load CA & Leaf TLS certificate.
- [x] mTLS support.
- [x] Opentelemetry (console, otlphttp, otlpgrpc, and datadog trace provider).
- [x] Code Generator for auto instrumentation (otelwrap)
- [x] Plugable log (zap, testing).
- [x] Embed opentelemetry trace-id + copy logged field to opentelemetry trace.
- [x] Env config.
- [x] Dockerized.
- [x] CI/CD as Code (dagger)## Using as library
The packages under `pkg` are reusable for importing into other project. Moreover `pkg/cmd` can be used to instantiate all the packages using environment variable for [quick inclusion](./internal/cmd/cmd.go#L118-L136)
### Versions with BREAKING CHANGES
- v0.20.0 introduces major breaking changes as the package structure is completely rewritten