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: