Skip to content

Commit

Permalink
Add an article explaining how to install protoc
Browse files Browse the repository at this point in the history
Motivation:

The official instructions for installing `protoc` don't include
instructions for using a package manager. A number of our docs refernce
having `protoc` installed as a prerequisite, it'd be useful to have docs
on how to install using a package manager.

Modifications:

- Add a doc about installing protoc

Result:

More docs
  • Loading branch information
glbrntt committed Jan 24, 2025
1 parent c991945 commit f7d6d41
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Installing protoc

Learn how to install `protoc`, the Protocol Buffers compiler.

## Overview

The Protocol Buffers compiler is a command line tool for generating source code from `.proto`
files and is required to generate gRPC stubs and messages. You can learn more about it on the
[Protocol Buffers website](https://protobuf.dev/).

You can install `protoc` in a number of ways including:

1. Via a package manager,
2. By downloading the binary.

### Install via a package manager

Using a package manager is the easiest way to install `protoc`.

On macOS you can use [Homebrew](https://brew.sh):

```sh
brew install protobuf
```

On Ubuntu and Debian you can use `apt`:

```sh
apt update && apt install -y protobuf-compiler
```

On Fedora you can use `dnf`:

```sh
dnf install -y protobuf-compiler
```

### Installing a pre-built binary

If you're unable to use a package manager to install `protoc` then you may be able
to download a pre-built binary from the [Protocol Buffers GitHub
repository](https://github.com/protocolbuffers/protobuf).

First, find and download the appropriate binary for your system from the
[releases](https://github.com/protocolbuffers/protobuf/releases) page.

Next, unzip the artifact to a directory called `protoc`:

```sh
unzip /path/to/downloaded/protoc-{VERSION}-{OS}.zip -d protoc
```

Finally, move `protoc/bin/protoc` to somewhere in your `$PATH` such as `/usr/local/bin`:

```sh
mv protoc/bin/protoc /usr/local/bin
```

You can now remove the `protoc` directory.
8 changes: 7 additions & 1 deletion Sources/GRPCProtobuf/Documentation.docc/Documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,19 @@ A package integrating Swift Protobuf with gRPC Swift.

## Overview

This package provides two products:
This package provides three products:
- ``GRPCProtobuf``, a module providing runtime serialization and deserialization components for
[SwiftProtobuf](https://github.com/apple/swift-protobuf).
- `protoc-gen-grpc-swift`, an executable which is a plugin for `protoc`, the Protocol Buffers
compiler. An article describing how to generate gRPC Swift stubs using it is available with the
`grpc-swift` documentation on the [Swift Package
Index](https://swiftpackageindex.com/grpc/grpc-swift/documentation).
- `GRPCProtobufGenerator`, a Swift Package build plugin for generating stubs as part of the build
process.

## Essentials

- <doc:Installing-protoc>

## Topics

Expand Down

0 comments on commit f7d6d41

Please sign in to comment.