mirror of https://github.com/grpc/grpc.io.git
89 lines
2.9 KiB
Markdown
89 lines
2.9 KiB
Markdown
---
|
|
title: Protocol Buffer Compiler Installation
|
|
linkTitle: Protoc Installation
|
|
description: How to install the protocol buffer compiler.
|
|
protoc-version: 25.1
|
|
toc_hide: true
|
|
---
|
|
|
|
While not mandatory, gRPC applications often leverage [Protocol Buffers][pb] for
|
|
service definitions and data serialization. Most of the example code from this
|
|
site uses [version 3 of the protocol buffer language (proto3)][proto3].
|
|
|
|
The protocol buffer compiler, `protoc`, is used to compile `.proto` files, which
|
|
contain service and message definitions. Choose one of the methods given below
|
|
to install `protoc`.
|
|
|
|
### Install using a package manager
|
|
|
|
You can install the protocol compiler, `protoc`, with a package manager under
|
|
Linux or macOS using the following commands.
|
|
|
|
{{% alert title="Warning" color="warning" %}}
|
|
**Check the version of `protoc`** (as indicated below) after installation to
|
|
ensure that it is sufficiently recent. The versions of `protoc` installed by
|
|
some package managers can be quite dated.
|
|
|
|
Installing from pre-compiled binaries, as indicated in the [next
|
|
section](#binary-install), is the best way to ensure that you're using the
|
|
latest release of `protoc`.
|
|
{{% /alert %}}
|
|
|
|
- Linux, using `apt` or `apt-get`, for example:
|
|
|
|
```sh
|
|
apt install -y protobuf-compiler
|
|
protoc --version # Ensure compiler version is 3+
|
|
```
|
|
|
|
- MacOS, using [Homebrew][]:
|
|
|
|
```sh
|
|
brew install protobuf
|
|
protoc --version # Ensure compiler version is 3+
|
|
```
|
|
|
|
<a name="binary-install"></a>
|
|
|
|
### Install pre-compiled binaries (any OS)
|
|
|
|
To install the [latest release][] of the protocol compiler from pre-compiled
|
|
binaries, follow these instructions:
|
|
|
|
1. Manually download from [github.com/google/protobuf/releases][] the zip file
|
|
corresponding to your operating system and computer architecture
|
|
(`protoc-<version>-<os>-<arch>.zip`), or fetch the file using commands such
|
|
as the following:
|
|
|
|
```sh
|
|
PB_REL="https://github.com/protocolbuffers/protobuf/releases"
|
|
curl -LO $PB_REL/download/v{{< param protoc-version >}}/protoc-{{< param protoc-version >}}-linux-x86_64.zip
|
|
```
|
|
|
|
2. Unzip the file under `$HOME/.local` or a directory of your choice. For
|
|
example:
|
|
|
|
```sh
|
|
unzip protoc-{{< param protoc-version >}}-linux-x86_64.zip -d $HOME/.local
|
|
```
|
|
|
|
3. Update your environment's path variable to include the path to the
|
|
`protoc` executable. For example:
|
|
|
|
```sh
|
|
export PATH="$PATH:$HOME/.local/bin"
|
|
```
|
|
|
|
### Other installation options
|
|
|
|
If you'd like to build the protocol compiler from sources, or access older
|
|
versions of the pre-compiled binaries, see [Download Protocol
|
|
Buffers][download].
|
|
|
|
[download]: https://protobuf.dev/downloads
|
|
[github.com/google/protobuf/releases]: https://github.com/google/protobuf/releases
|
|
[Homebrew]: https://brew.sh
|
|
[latest release]: https://protobuf.dev/downloads#release-packages
|
|
[pb]: https://developers.google.com/protocol-buffers
|
|
[proto3]: https://protobuf.dev/programming-guides/proto3
|