-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Description
Description
Description
Interested in this extension, please +1 via the emoji/reaction feature of GitHub (top right).
gRPC Zero is an experimental, drop-in replacement for io.quarkus:quarkus-grpc
that eliminates the need for native protoc
executables and plugins by running the whole code generation pipeline directly on the JVM. It is self-contained, portable, and designed to work in hermetic or constrained build environments.
Repository name
quarkus-grpc-zero
Short description
gRPC Zero Codegen is a JVM-only, self-contained protoc codegen implementation for Quarkus projects.
Repository Homepage URL
https://docs.quarkiverse.io/quarkus-grpc-zero/dev/
Repository Topics
- quarkus-extension
- grpc
- codegen
- protoc
Team Members
Additional context
This extension avoids shipping platform-specific protoc
binaries by embedding the necessary protoc functionality in Java. High-level approach described in the README:
- Strip out the CLI interface from
libprotobuf
to avoid spawning external processes. - Compile the modified
libprotobuf
into WebAssembly (.wasm) usingwasi-sdk
. - Translate the resulting WebAssembly into pure Java bytecode at build time using Chicory.
- Use the generated Java dependency (containing the protoc capabilities and plugin support) to perform gRPC code generation in-process on the JVM.
This provides:
- Self-contained, single-JVM dependency (no native
protoc
required). - Improved portability across OS/architectures.
- Suitability for hermetic builds and CI environments where native binaries are a pain to manage.
Previously discussed with @cescoffier and @jponge we are aiming to provide an opt-in alternative that can mature and stabilize, with the help of community feedback, in a quarkiverse repository.
The initial codebase lives here:
https://github.com/andreaTP/quarkus-grpc-zero