GithubHelp home page GithubHelp logo

isabella232 / grpc-jexpress Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flipkart-incubator/grpc-jexpress

0.0 0.0 0.0 2.37 MB

Developer friendly container for writing gRPC services using grpc-java

Shell 0.30% JavaScript 8.92% Java 75.50% CSS 8.51% HTML 4.36% FreeMarker 2.40%

grpc-jexpress's Introduction

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.

grpc-jexpress's People

Contributors

aakash-fk avatar dependabot[bot] avatar iammehrabalam avatar ikhere avatar ravishankar-pandey avatar regunathb avatar toonlygaurav avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.