Skip to content

gRPCX is a library for easily building gRPC services in Go. It has support for REST APIs, ORM, Database Migrations, Cache, Message Streaming, Structured Logging, Config, Healthchecks, Prometheus Metrics, and more.

License

Notifications You must be signed in to change notification settings

autom8ter/grpcx

Repository files navigation

gRPCX

GoDoc

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

Features

  • 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

Other gRPC Projects

TODO

  • 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

About

gRPCX is a library for easily building gRPC services in Go. It has support for REST APIs, ORM, Database Migrations, Cache, Message Streaming, Structured Logging, Config, Healthchecks, Prometheus Metrics, and more.

Resources

License

Stars

Watchers

Forks

Packages

No packages published