Git Product home page Git Product logo

omniproto's Introduction

omniproto

Omniproto makes your generating gRPC code from protorepo easy.

Running

Omniproto is bundled with grpckit, an all-in-one docker container with a variety of plugins installed. In your grpc service repository, simply submodule your protorepo, add an omniproto.yaml config file, and a docker execute step as part of your toolchain:

docker run -v $(pwd):/workspace --rm grpckit/omniproto

See omniproto.yaml for reference.

How It Works

omniproto is designed to work with a protorepo, meaning you or your organization has a repository dedicated to all your gRPC and protocol buffer files. The protorepo is submoduled into your project's code repository, and then omniproto is run to generate anything you need from your protorepo. You should use omniproto with grpckit so you have a repeatable build process across your entire environment: CICD, developer machines, you name it.

Configuration

omniproto expects a yaml or json config file in the root of your code repository. This declares the folders or files you want to generate from your submoduled protorepo, along with the language you want and any additional plugins. See the omniproto.yaml file in the root of this repository, which uses the protorepo-example file.

All files in your protorepo should be root-relative to the protorepo.

A note on Google APIs

Most repositories make use of Google APIs, the public repository of Google, which includes annotations and http. grpckit does not include these in its container, by choice. The Google APIs should be submoduled into your protorepo, so the files you need and their location is explicit.

omniproto's People

Contributors

mhamrah avatar aldelucca1 avatar gnagel avatar shraykay avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.