Skip to main content

Protoc wrapper for compilation into any language

Project description

All-in-one Protocol Buffers compilation tool

Supported languages:

Python, JavaScript, C++, Rust, Java, Go, ObjectiveC, PHP, Ruby, C#

Supported OS:

Ubuntu 22.04

Supported architectures:

x86_64

Getting started

First, install the Python package: pip install protoc-polyglot

Then, run a command using this manual:

protoc-polyglot \
  -l [languages] [service-yml/directory/file] \
  -s [service name] \
  -d [directory input] \
  -f [files] \
  -o [output dir, default protoc-output -> default protoc-output/bookclub/python ...] \
  -c [connection ip+port]

Documentation is created automatically in the output folder after each compilation run.

Examples

  • protoc-polyglot --languages python --service-yml /data/protos/services.yml
  • protoc-polyglot -l cpp python -y /data/protos/services.yml

Optional: bulding Docker image locally

  1. Build a docker image
  2. alias DOCKER_RUN='docker run --rm -v [output dir]:/data/output -v [output doc dir]:/data/doc -v [input protos dir]:/data/protos protocpolyglot/protoc-polyglot'
  3. DOCKER_RUN [command arguments]

Contribution

We love that you are interested in helping us with the development of the protoc-polyglot project. To make the process of contributing as simple as possible we have created a couple of guidelines on how to contribute.

Issue tracking and solving

We track every issue in YouTrack. Before solving any bug, make sure it's reported in YouTrack and not already solved.

Make sure to solve only one issue at a time.

Fork & Pull Request

  1. Create a fork of this repository
  2. Clone your fork to your computer
  3. Create a new branch in the forked repository from the base branch dev with a meaningful name
  4. Solve the issue
  5. Push your changes to the Fork repository.
  6. Create a Pull Request from your branch to the dev branch ( GitHub documentation about Pull Requests: https://help.github.com/articles/using-pull-requests)

The Pull Request should have a meaningful title, information about the changes you have made, and a link to the issue in YouTrack.

Do not add unnecessary files, and make sure not to push any sensitive personal information.

Protoc-polyglot team - protoc-polyglot@proton.me

TODO:

  • Add more languages: Kotlin, Haskell, Perl, Lua, Swift etc.
  • Create web client
  • Create CLI client

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

protoc_polyglot-0.0.1.post77.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

protoc_polyglot-0.0.1.post77-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file protoc_polyglot-0.0.1.post77.tar.gz.

File metadata

File hashes

Hashes for protoc_polyglot-0.0.1.post77.tar.gz
Algorithm Hash digest
SHA256 fd92b5f6ecdce52fc1ee73b3974acd0a7b682de239a1d2a0baa003e4b9119672
MD5 016801b5f0f4bf1bc464e71c89b25d65
BLAKE2b-256 8e7abd78663e75ea34ebb7d27158c2813a1f8db7cebfa96065f0ddc64364808e

See more details on using hashes here.

File details

Details for the file protoc_polyglot-0.0.1.post77-py3-none-any.whl.

File metadata

File hashes

Hashes for protoc_polyglot-0.0.1.post77-py3-none-any.whl
Algorithm Hash digest
SHA256 ecfde4d2e25478ff2c65eac2f86f0f28644bfd90280d2efa968da0a3f297642a
MD5 9970057c87c722d1fc04f6f73dfb4e1c
BLAKE2b-256 c2cb77e33ef923a324e09ed9ac244eaeeccdb247dce10a9e96c1b62e197a3263

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page