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#

TODO:

Kotlin, Haskell, Perl, Lua, Swift etc.

Supported OS:

Ubuntu 22.04

Supported architectures:

x86_64

Getting started

  1. Build prepared 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 protoc-polyglot-x64:1.54.3'
  3. DOCKER_RUN [command]

List of commands:

  • List available languages and services:
    cli.py list
  • Compile a service:
    [language]/cli.py protoc [name]
  • Compile all services:
    [language]/cli.py protoc

Examples:

alias DOCKER_RUN='docker run --rm -v $(pwd)/output:/data/output -v $(pwd)/doc:/data/doc -v $(pwd)/samples:/data/protos -v $(pwd)/tests:/data/tests protoc-polyglot-x64:1.54.3'

  • DOCKER_RUN cli.py list
  • DOCKER_RUN python/cli.py protoc bookclub
  • DOCKER_RUN js/cli.py protoc
  • DOCKER_RUN cli.py doc

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

protoc-polyglot python protoc

protoc-polyglot [language] [service-yml/directory/file] -s [service name] -d [directory input] -f [files] -o [output dir, default protoc-output -> default protoc-output/bookclub/python ...]

protoc-polyglot list

protoc-polyglot python file.yml

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.post64.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

protoc_polyglot-0.0.1.post64-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: protoc_polyglot-0.0.1.post64.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for protoc_polyglot-0.0.1.post64.tar.gz
Algorithm Hash digest
SHA256 416a1c087e9f5aef22815bfc4d709b3c091a77f5d2d72e39a94c4d644b06f749
MD5 c4ffd81f4c8b3ccd9dc0f28f324a12a5
BLAKE2b-256 a3c12a6e78f7aaf270d41477f66cb1a88118f03db1cb375f475e8aeacfde1713

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protoc_polyglot-0.0.1.post64-py3-none-any.whl
Algorithm Hash digest
SHA256 11982b23d51edf018002eb37abc5993f7c89cd0cff043d081d7d97a8e99eca53
MD5 12f32a561f1419253d264b9d1179ad99
BLAKE2b-256 3183fe9ebd1718a11c4978c465b77e94e2d141ea1f87881b34ca60980ace18ed

See more details on using hashes here.

Supported by

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