mirror of
				https://github.com/linka-cloud/grpc.git
				synced 2025-11-04 03:21:50 +00:00 
			
		
		
		
	
			
				
					
						
					
					6e8612094339d9a19951d3c037f11a70ec4d2f95
				
			
			
		
	Signed-off-by: Adphi <philippe.adrien.nousse@gmail.com>
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
 
Description
				
					Languages
				
				
								
								
									Go
								
								99.2%
							
						
							
								
								
									Makefile
								
								0.8%