You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Adphi 9baceef381
service: signals add syscall.SIGTERM
Signed-off-by: Adphi <philippe.adrien.nousse@gmail.com>
2 months ago
certs remove transport draft, add grpc web and gateway support 2 years ago
client interceptors: add ban 8 months ago
codec codec: register on init 2 months ago
config refactor: remove ioutil module usage 3 months ago
errors errors: add BadRequestDetails 3 months ago
example refactor: remove ioutil module usage 3 months ago
google/api remove transport draft, add grpc web and gateway support 2 years ago
interceptors ban: more defaults options, simpler callback 6 months ago
logger logger: add WithContext support 3 months ago
react react: use fs.FS instead of embed.FS 5 months ago
registry refactor: remove ioutil module usage 3 months ago
resolver deps: upgrade grpc 3 months ago
service service: signals add syscall.SIGTERM 2 months ago
signals add metrics, tracing, validation interceptors, add options: WithInterceptors, With{Client,Server}Interceptors 2 years ago
transport add missing transport folder 2 years ago
utils add registry base interface, mdns, noop implementations, add resolver, client 3 years ago
.gitignore interceptors: add ban 8 months ago
LICENSE Add LICENSE 3 years ago
Makefile remove transport draft, add grpc web and gateway support 2 years ago
README.md interceptors: add ban 8 months ago
go.mod deps: upgrade go to 1.20 and update dependencies 3 months ago
go.sum deps: upgrade go to 1.20 and update dependencies 3 months ago
tools.go remove transport draft, add grpc web and gateway support 2 years ago

README.md

gRPC

A utility module, largely taken from the go-micro patterns (and a good amount of code too...) with pure gRPC ecosystem modules.

Principles:

  • Pluggable
  • No singleton

Features:

  • simple configuration with options
  • simple TLS configuration
  • TLS auth
  • client connection pool
  • registry / resolver resolution
    • mdns
    • kubernetes
  • default interceptors implementation:
    • context request id
    • defaulter
    • validation
    • health
    • context logger
    • sentry
    • rate-limiting
    • ban
    • auth claim in context
    • recovery (server side only)
    • tracing (open-tracing)
    • metrics (prometheus)
    • retries
    • context DB / transaction
    • ...
  • grpc web / api gateway with middleware:
    • auth
    • cors
    • logging
    • tracing
    • metrics
  • broker, based on nats-streaming

Used modules: