gopack

module
v0.0.0-...-58b8290 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 3, 2024 License: MIT

README

🎒GoPack

build codecov

GoPack is kind of your Swiss Army Knife for golang microservices. The project adheres to Semantic Versioning and Conventional Commits.

Features

  • gRPC client and server
    • Traces and Metrics are automatically handled depending upon the configuration.
    • ratelimiter interceptors (unary/stream) for both client and server
    • trace interceptors (unary/stream) for both client and server
    • metrics interceptors (unary/stream) for both client and server
    • recovery interceptors (unary/stream) for both client and server
    • request id interceptors (unary/stream) for both client and server
    • customizable options for both gRPC client and server
    • testkit to start a gRPC test server
  • Postgres database interface to execute SQL statement with postgres with traces and metrics out of the box.
    • testkit to smoothly implement unit/integration tests with postgres
  • OpenTelemetry trace and metrics provider to simplify the creation of trace and metrics providers
    • testkit to create an opentelemetry test collector
  • Scheduler wrapper around gocron
  • Zap logger wrapper with request_id, trace_id and span_id injected to log when present in the context
  • Request ID injector into context
Note

Traces and Metrics are accessible via the integration with OpenTelemetry.

Contribution

Contributions are welcome! The project adheres to Semantic Versioning and Conventional Commits. This repo uses Earthly.

To contribute please:

  • Fork the repository
  • Create a feature branch
  • Submit a pull request
Test & Linter

Prior to submitting a pull request, please run:

earthly +test

Directories

Path Synopsis
log
otel
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL