Go to file
Adphi 9729fb8b8a
breaking change: auth options now takes fully qualified method names
Signed-off-by: Adphi <philippe.adrien.nousse@gmail.com>
2022-07-16 19:03:44 +02:00
certs remove transport draft, add grpc web and gateway support 2021-09-18 01:44:08 +02:00
client add metadata interceptors, auth client interceptors 2022-03-11 12:33:18 +01:00
codec codec: add codec to support both vtproto and google.golang.org/protobuf and probably gogoproto 2022-03-17 15:22:31 +01:00
config add metadata interceptors, auth client interceptors 2022-03-11 12:33:18 +01:00
errors errors: add missing canceled 2022-06-24 11:47:09 +02:00
example add server interface interceptors 2022-07-15 15:48:09 +02:00
google/api remove transport draft, add grpc web and gateway support 2021-09-18 01:44:08 +02:00
interceptors breaking change: auth options now takes fully qualified method names 2022-07-16 19:03:44 +02:00
logger logger: add FromLogrus 2022-07-02 12:39:52 +02:00
react add react single page app handler (proxy to dev server when $REACT_ENDPOINT is defined 2022-05-26 12:14:54 +02:00
registry logger: add FromLogrus 2022-07-02 12:39:52 +02:00
resolver add client address option, fix noop resolver 2021-11-22 14:26:05 +01:00
service add server interface interceptors 2022-07-15 15:48:09 +02:00
signals add metrics, tracing, validation interceptors, add options: WithInterceptors, With{Client,Server}Interceptors 2021-11-21 14:58:49 +01:00
transport add missing transport folder 2021-09-30 12:00:30 +02:00
utils add registry base interface, mdns, noop implementations, add resolver, client 2020-11-15 15:54:46 +01:00
.gitignore add missing transport folder 2021-09-30 12:00:30 +02:00
go.mod logger: add SetLevel and Logr for logr interoperability 2022-03-24 13:48:24 +01:00
go.sum logger: add SetLevel and Logr for logr interoperability 2022-03-24 13:48:24 +01:00
LICENSE Add LICENSE 2020-11-06 17:32:45 +00:00
Makefile remove transport draft, add grpc web and gateway support 2021-09-18 01:44:08 +02:00
README.md add sentry interceptors 2021-11-21 16:24:22 +01:00
tools.go remove transport draft, add grpc web and gateway support 2021-09-18 01:44:08 +02:00

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: