grpc /grpc-java

The Java gRPC implementation. HTTP/2 based RPC

★ 12,078⑂ 4,016
JavaCreated 2014-12-08grpc.io/docs/languages/java/
12,078
stars
+2+3+3
4,016
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

gRPC-Java - An RPC library and framework
========================================


  
    Homepage:
    grpc.io
  
  
    Mailing List:
    [email protected]
  







Statistics
---------------
!Issues
!Pull Requests
!Forks
!Stars

Supported Platforms
-------------------

gRPC-Java supports Java 8 and later. Android minSdkVersion 24 (Nougat) and
later are supported with [Java 8 language desugaring][android-java-8].

TLS usage on Android typically requires Play Services Dynamic Security Provider.
Please see the Security Readme.

Older Java versions are not directly supported, but a branch remains available
for fixes and releases. See [gRFC P5 JDK Version Support
Policy][P5-jdk-version-support].

Java version | gRPC Branch
------------ | -----------
7            | 1.41.x

[android-java-8]: https://developer.android.com/studio/write/java8-supportsupported_features
[P5-jdk-version-support]: https://github.com/grpc/proposal/blob/master/P5-jdk-version-support.mdproposal

Getting Started
---------------

For a guided tour, take a look at the quick start
guide or the more explanatory gRPC
basics.

The examples and the
Android example
are standalone projects that showcase the usage of gRPC.

Download
--------

Download [the JARs][]. Or for Maven with non-Android, add to your pom.xml:
xml

  io.grpc
  grpc-netty-shaded
  1.85.0
  runtime


  io.grpc
  grpc-protobuf
  1.85.0


  io.grpc
  grpc-stub
  1.85.0



Or for Gradle with non-Android, add to your dependencies:
gradle
runtimeOnly 'io.grpc:grpc-netty-shaded:1.85.0'
implementation 'io.grpc:grpc-protobuf:1.85.0'
implementation 'io.grpc:grpc-stub:1.85.0'


For Android client, use grpc-okhttp instead of grpc-netty-shaded and
grpc-protobuf-lite instead of grpc-protobuf:
gradle
implementation 'io.grpc:grpc-okhttp:1.85.0'
implementation 'io.grpc:grpc-protobuf-lite:1.85.0'
implementation 'io.grpc:grpc-stub:1.85.0'


For Bazel, you can either
use Maven
(with the GAVs from above), or use @io_grpc_grpc_java//api et al (see below).

[the JARs]:
https://search.maven.org/search?q=g:io.grpc%20AND%20v:1.85.0

Development snapshots are available in Sonatypes's snapshot
repository.

Generated Code
--------------

For protobuf-based codegen, you can put your proto files in the src/main/proto
and src/test/proto directories along with an appropriate plugin.

For protobuf-based codegen integrated with the Maven build system, you can use
[protobuf-maven-plugin][] (Eclipse and NetBeans users should also look at
os-maven-plugin's
IDE documentation):
xml

  
    
      kr.motd.maven
      os-maven-plugin
      1.7.1
    
  
  
    
      org.xolstice.maven.plugins
      protobuf-maven-plugin
      0.6.1
      
        com.google.protobuf:protoc:3.25.9:exe:${os.detected.classifier}
        grpc-java
        io.grpc:protoc-gen-grpc-java:1.85.0:exe:${os.detected.classifier}
      
      
        
          
            compile
            compile-custom
          
        
      
    
  



[protobuf-maven-plugin]: https:

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON