All Projects → flipkart-incubator → grpc-jexpress

flipkart-incubator / grpc-jexpress

Licence: other
Developer friendly container for writing gRPC services using grpc-java

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
FreeMarker
481 projects
shell
77523 projects

grpc-jexpress

Developer friendly container for writing gRPC services using grpc-java, called GJEX - for Grpc Java Express.

Provides following features:

  • Transparent gRPC runtime startup alongwith Jetty for dashboard/administration
  • Guice module support to integrate gRPC service implementations with the gRPC runtime
  • Metrics support - e.g. @Timed annotations to publish to JMX
  • YAML based configuration support for gRPC service implementations
  • Component Lifecycle (Start(), Stop()) support via Service interface
  • Health Check - ability to add any number of deep Health Checks
  • Custom web resources for enabling Control Path, Administration actions
  • Filters - ability to add any number of Filters to gRPC stub method implementations
  • Validation - using Hibernate Validator
  • Distributed Tracing - using opentracing and the openzipkin implementation
  • Concurrent execution, Circuit breaking using Hystrix and Dispatch-Compose through a FutureDecorator API
  • Deadlining for APIs - ability to specify execution timeouts for gRPC stubs at service end
  • Task/Upstream request retries using Hedged Requests as described here
  • Tool recommendations for testing

Releases

Release Date Description
Version 1.33 Nov 2019 Bug fixes, feature enhahncements
Version 1.0 Jan 2019 Initial stable release

Changelog

Changelog can be viewed in CHANGELOG.md file

Distribution

GJEX builds are distributed via the Clojars community maintained repository for open source libraries. Add the following repository to your build system to access releases builds - e.g for Maven :

<repository>
    <id>clojars</id>
    <name>Clojars repository</name>
    <url>https://clojars.org/repo</url>
</repository>

More details on Distribution Binaries

Building

You may also build GJEX from source. To build, clone this repository and run:

$ ./gradlew clean build publishToMavenLocal

Examples

To build the GJEX examples, run in the 'examples' directory:

$ ../gradlew installDist

To run the hello world example with GJEX extensions, run:

$ ./build/install/examples/bin/hello-world-server server ./src/main/resources/hello_world_config.yml

The gRPC Server, hosted gRPC services and the Jetty server status will be displayed in the console. By attaching an MBeans explorer like JConsole, one can inspect method-level execution metrics for the gRPC services.

And in a different terminal window run:

$ ./build/install/examples/bin/hello-world-client

Documentation

Refer to the wiki for documentation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].