mirror of
https://github.com/linka-cloud/grpc.git
synced 2024-11-24 20:06:25 +00:00
certs | ||
client | ||
errors | ||
example | ||
google/api | ||
interceptors | ||
logger | ||
registry | ||
resolver | ||
service | ||
signals | ||
transport | ||
utils | ||
.gitignore | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
README.md | ||
tools.go |
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
- embedded gorm database with options (branch db)
- 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:
- https://github.com/grpc-ecosystem/go-grpc-middleware
- https://github.com/grpc-ecosystem/grpc-opentracing
- https://github.com/grpc-ecosystem/go-grpc-prometheus
- https://github.com/grpc-ecosystem/grpc-gateway
- https://github.com/jaredfolkins/badactor
- https://github.com/johnbellone/grpc-middleware-sentry
- https://github.com/improbable-eng/grpc-web