Skip to content

Tochemey/gopack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5d1459c Â· Mar 26, 2025
Feb 7, 2025
Feb 25, 2025
Feb 25, 2025
Mar 13, 2025
Mar 13, 2025
Feb 7, 2025
Mar 26, 2025
Jan 27, 2025
Jan 1, 2025
Feb 7, 2025
Jan 1, 2025
Jan 1, 2025
Feb 7, 2025
Feb 25, 2025
Feb 25, 2025
Jan 1, 2025
Feb 25, 2025
Feb 25, 2025
Jan 1, 2025
Dec 30, 2024
Jun 24, 2023
Jun 24, 2023
Jan 1, 2025
Jan 1, 2025
Dec 30, 2024
Dec 30, 2024
Dec 30, 2024
Dec 30, 2024
Mar 26, 2025
Mar 26, 2025
Mar 13, 2025
Jul 18, 2023

Repository files navigation

🎒GoPack

build codecov

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

Features

  • gRPC - contains 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 - contains 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 - contains trace and metrics provider to simplify the creation of trace and metrics providers.
    • testkit to create an opentelemetry test collector
  • Scheduler - contains a crontab library to implement job schedulers.
  • Zap logger wrapper with request_id, trace_id and span_id injected to log when present in the context
  • Request ID - contains request ID injection with appropriate interceptors and handlers.
  • Validation - contains a simple validation library.
  • Errors Chain - contains an simple errors chain library.
  • Stream - contains a simple in-memory pubsub
  • Ticker - contains an enhanced golang ticker
  • Timer Pool - contains a timer pool for memory efficiency
  • Collection - contains some thread-safe collections like map, slice and queue
  • Future - contains a future library to handle async calls
  • GCP PubSub - contains wrappers around the Google PubSub api to:

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