gRPCX is a framework for building enterprise-grade Saas applications with gRPC. It is meant to be a batteries-included framework for building enterprise-grade gRPC services.
go get github.com/autom8ter/grpcx
- gRPC
- gRPC-gateway
- Serve Gateway/gRPC same port(cmux)
- Flexible Provider/Interface based architecture: use the same code with different providers depending on tech stack
- Metrics(prometheus)
- File Storage dependency injection(local, gcs)
- Structured Logging(slog)
- Database Migrations(golang-migrate)
- Database dependency injection(sqlite,mysql,postgres)
- Cache dependency injection(redis)
- Stream dependency injection(redis,nats)
- Email dependency injection(smtp)
- Payment Processing dependency injection(stripe)
- Context Tagging Middleware/Interceptor
- Authentication with protoc-gen-authenticate
- Authorization with protoc-gen-authorize
- Rate-limiting with protoc-gen-ratelimit
- Request Validation with protoc-gen-validate
- Compatible with protoc-gen-validate
- Flexible configuration(viper)
- Graceful Shutdown
- Panic Recovery middleware/interceptor
- CORS middleware(for gRPC-gateway)
- Can be run completely in-memory for testing
- Add more tests
- Add more examples
- Add more documentation
- Add kafka stream provider
- Add rabbitmq stream provider
- Add sendgrid email provider
- Add mailgun email provider
- Add tracing support