Requirements
Minimum requirements
This plugin requires that you meet the following requirements at a minimum:
- Apache Maven 3.9 or newer
- Java 17 or newer
While this plugin itself will work with many operating systems and architectures,
you will find that the official releases of protoc by Google only support mainstream
architectures and operating systems. These are listed below:
| Operating system | Supported CPU architectures | Command to check |
|---|---|---|
| Linux |
|
uname -m
|
| Mac OS |
|
uname -m
|
| Windows |
|
echo %PROCESSOR_ARCHITECTURE%
|
Other platforms
Android
While technically Linux, Android locks down a number of system calls that the
official build of protoc will rely on. For this reason, you will need to install
or build a custom version of protoc, such as the one provided on the Termux
repositories.
Refer to the protocVersion parameter documentation on the
goals page for how you can override the binary being used.
Windows on ARM
As of right now, no official binaries for aarch64 Windows systems are provided,
and there has been no sign of plans at the time of writing to support this from
Google.
Windows 11 ARM releases support x86 emulation via the Prism emulator.
To enable users to build on Windows ARM machines, this plugin will always download the
x86_64 release of protoc and any corresponding plugins, with the assumption that
emulation will work successfully.
BSDs, Linux on unsupported CPUs, MINIX, Solaris, etc
Your best bet is to use a prebuilt version of protoc for your platform if provided
by your package vendor. Alternatively, you could try binfmt emulation or QEMU emulation
and pass the -Dos.arch=aarch64 -Dos.name=Linux flag.
Refer to the protocVersion parameter documentation on the
goals page for how you can override the binary being used.
You may also try something like docker buildx and use a cross-platform container to build
on the desired platform. Virtual machines are also an option.
“But Google released binaries for this architecture!”
In the unlikely event that Google adds new architecture support as a first class citizen
to protoc, please raise a
feature request
and I will get onto it as soon as possible.
What about this WASM thing I've heard about?
Some projects like Quarkus have began to experiment with transpiling
protoc to web assembly, enabling them to be run in a WASM interpreter
within the JVM, or within Graal's polyglot runtime.
This is something that I am looking to eventually support where possible. If you are interested in helping out with this, please reach out on the discussions page.

