Protobuf files manager

Overview

Prot - protobuf files manager.

It application can help your manage protobuf files and generate code based on him.

!!! Before use Prot you must install your lang dependencies (section Config/Lang).

How to use

  1. Create repository for service protobuf files.
  2. Run prot init command in your server application.
  3. Add your repository with protobuf files into prot.yml and run prot install command.
  4. Write code for server.
  5. Run prot init command in your client application.
  6. Add your repository with protobuf files into prot.yml and run prot install command.
  7. Use generated grpc client in your client application.
  8. Now after update protobuf files you can update generated code for grpc server and client by one command - prot install.

Install

go get -u github.com/umirode/prot

Commands

prot help - Shows a list of commands or help for one command

❯ prot help
NAME:
   prot - protobuf files manager

USAGE:
   prot [global options] command [command options] [arguments...]

VERSION:
   1.0.0

COMMANDS:
   install  Install dependencies from config file
   init     Generate config for Prot application
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)

prot init - Generate config for Prot application Options:

  • --output Output path for config (default: current directory)
❯ prot init --help
NAME:
   prot init - Generate config for Prot application

USAGE:
   prot init [command options] [arguments...]

OPTIONS:
   --output value, -o value  Output path for config (default: current directory)
   --help, -h                show help (default: false)

prot install - Install dependencies from prot.yml config Options:

  • --config Path to configuration file (default: prot.yaml)
  • --output Output path (default: current directory)
❯ prot install --help                                                                                                          
NAME:
   prot install - Install dependencies from config file

USAGE:
   prot install [command options] [arguments...]

OPTIONS:
   --config value, -c value  Path to configuration file (default: prot.yaml)
   --output value, -o value  Output path (default: current directory)
   --help, -h                show help (default: false)

Configuration

Lang If yor want more - welcome to the issue! :)

Lang Info
go Follow https://grpc.io/docs/quickstart/go/ section Protocol Buffers
dart Follow https://grpc.io/docs/quickstart/dart/ section Protocol Buffers v3

ModuleName or ModuleNameWithAuth - name for module.

Repository - link for your repository (ssh or https, depends on the type of authorization).

Auth - optional parameter, if your want auth for git.

Lang: go
Modules:
  ModuleName:
    Repository: https://github.com/umirode/prot.git
  ModuleNameWithAuth:
    Repository: [email protected]:umirode/prot.git
    Auth:
      Type: PublicKeys
      Config:
        PemFile: id_rsa.pem
        IgnoreHostKey: true

Auth Configuration

PublicKeys - represent ssh auth via public keys (type ssh).

Auth:
    Type: PublicKeys
    Config:
      PemFile: id_rsa.pem
      User: umirode # OPTIONAL DEFAULTS git
      PemFilePassword: password # OPTIONAL
      IgnoreHostKey: true # OPTIONAL DEFAULTS false

Password - represent ssh auth via password (type ssh).

Auth:
    Type: Password
    Config:
      User: user
      Password: pass

BasicAuth - represent a HTTP basic auth (type https).

Auth:
    Type: BasicAuth
    Config:
      Username: user
      Password: pass

Token - represent authenticate with HTTP token authentication (also known as bearer authentication) (type https).

IMPORTANT: If you are looking to use OAuth tokens with popular servers (e.g. GitHub, Bitbucket, GitLab) you should use BasicAuth instead. These servers use basic HTTP authentication, with the OAuth token as user or password. Check the documentation of your git server for details.

Auth:
    Type: Token
    Config:
      Token: token
You might also like...
JSON-annotated protobuf definitions for NVD feeds

PROTONVD: Protobuf definitions for NVD Features: Encapsulates all fields in the NIST NVD Vulnerability JSON feeds. JSON annotations in proto definitio

my fork from google.golang.org/protobuf

Go support for Protocol Buffers This project hosts the Go implementation for protocol buffers, which is a language-neutral, platform-neutral, extensib

Control your Flipper Zero over Protobuf RPC protocol.

go-flipper Control your Flipper Zero over Protobuf RPC protocol. This library is designed to be transport agnostic, though I've tested it with RPC ove

Orion - a small lightweight framework written around grpc/protobuf with the aim to shorten time to build microservices at Carousell.

Orion Orion is a small lightweight framework written around grpc/protobuf with the aim to shorten time to build microservices at Carousell. It is deri

A download manager package for Go

grab Downloading the internet, one goroutine at a time! $ go get github.com/cavaliercoder/grab Grab is a Go package for downloading files from the in

A flexible configuration manager for Wireguard networks
A flexible configuration manager for Wireguard networks

Drago A flexible configuration manager for WireGuard networks Drago is a flexible configuration manager for WireGuard networks which is designed to ma

High-performance PHP application server, load-balancer and process manager written in Golang
High-performance PHP application server, load-balancer and process manager written in Golang

RoadRunner is an open-source (MIT licensed) high-performance PHP application server, load balancer, and process manager. It supports running as a serv

Concurrent download manager built in Go
Concurrent download manager built in Go

Golang Download Manager - Weekend Project A concurrent download manager written in pure Go without any dependency. I wrote this code for my YouTube vi

A Fyne login manager for linux desktop computers
A Fyne login manager for linux desktop computers

Fin, the Fyne Login Manager This app is in it's very early stages and has only been tested with pam and systemd to log in users with a .xinitrc file.

Releases(v1.0.1)
Owner
Maksim Pavlov
Maksim Pavlov
Generate types and service clients from protobuf definitions annotated with http rules.

protoc-gen-typescript-http Generates Typescript types and service clients from protobuf definitions annotated with http rules. The generated types fol

Einride 32 Nov 22, 2022
A simple RPC framework with protobuf service definitions

Twirp is a framework for service-to-service communication emphasizing simplicity and minimalism. It generates routing and serialization from API defin

Twitch 6.2k Nov 25, 2022
A Protocol Buffers compiler that generates optimized marshaling & unmarshaling Go code for ProtoBuf APIv2

vtprotobuf, the Vitess Protocol Buffers compiler This repository provides the protoc-gen-go-vtproto plug-in for protoc, which is used by Vitess to gen

PlanetScale 529 Nov 19, 2022
protobuf ではなく JSON でやり取りするファイルを出力する protoc プラグイン

protoc-gen-jsonif proto ファイルから、JSON フォーマットでやりとりする型定義ファイルを出力する protoc プラグインです。 proto ファイルで言語を越えて型定義が出来るのはとても良い しかし protobuf ライブラリを入れるのが面倒 今のプロジェクトには既に

melpon 3 Feb 28, 2022
WIP protobuf support for Gleam ✨

gleam_pb WIP protobuf support for Gleam ✨ Progress Gleam Type generation custom functions that better handle default values stop including unnecessary

Benjamin Wireman 12 Feb 26, 2022
Experiments with pulsar go client and protobuf

How to use proto schema with pulsar go client library Define a .proto file Generate Code using below command: protoc -I=. -I=$GOPATH/src -I=$GOPATH/sr

Deepak Sah 1 Nov 15, 2021
Using Wireshark to decrypt TLS gRPC Client-Server protobuf messages

Using Wireshark to decrypt TLS gRPC Client-Server protobuf messages Sample client server in golang that demonstrates how to decode protobuf messages f

null 4 Sep 8, 2022
Temporal Activity Protobuf Generator Proof of Concept

Temporal Activity Protobuf Generator Proof of Concept This is a protoc plugin for generating easy to use code for calling and implementing activities.

Chad Retz 7 Oct 5, 2022
A Golang protobuf plugin used to generate the necessary interfaces to interact with the database

protoc-gen-go-db-enum This protobuf compiler plugin generates the Valuer and Scanner interfaces for enums defined in the proto files. It is highly bas

Hellyson Rodrigo Parteka 1 Sep 9, 2022
generate protobuf for asynq payload.

protoc-gen-go-asynq generate protobuf for asynq payload. usage 1. install protoc-gen-go-asynq # first install protobuf, then install go get -d google.

Jmploop 2 Dec 22, 2021