Protocol Buffer compiler written in Go

Overview

gotoc

This is gotoc, a protocol buffer compiler written in Go.

This is only the parser side; you will need a plugin to generate code.

Quick Start

go get github.com/dsymonds/gotoc
go get github.com/golang/protobuf/protoc-gen-go
gotoc foo.proto

To enable gRPC output, use the -params flag:

gotoc -params plugins=grpc foo.proto

License

This is licensed under the BSD 3-Clause Licence. See the LICENSE file for more details.

Read more

You might also like...
Mmpxmas-go - ModMyPi Programmable Christmas Tree examples written in Go with go-rpio

ModMyPi Programmable Christmas Tree examples in Go This small program contains examples similar to the examples provided by ModMyPi for interacting wi

This repo is where I'll be attempting to capture some generic algorithms written in Go

Go Generic Algorithms Welcome friends! 👋 This repo is where I'll be attempting

Gap-buffer - A Go implementation of the Gap Buffer data structure.
Gap-buffer - A Go implementation of the Gap Buffer data structure.

Gap Buffer Implementation in Go Overview This package provides a Gap Buffer data structure implementation for Go. Gap Buffer data structure allows eff

ReCT-Go-Compiler - A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler - A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

Go compiler made from scratch, which can compile itself. It's going to be the smallest and simplest go compiler in the world.

Babygo, a go compiler made from scratch Babygo is a small and simple go compiler. (Smallest and simplest in the world, I believe.) It is made from scr

Compiler as a Service is a compiler that is available over http/https and gRPC

BlakBoks(CaaS) Elasticsearch but for compiling untrusted code Compiler as a Service is a compiler that is available over http/2 and gRPC. Setup First

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

Fast ring-buffer deque (double-ended queue)

deque Fast ring-buffer deque (double-ended queue) implementation. For a pictorial description, see the Deque diagram Installation $ go get github.com/

Fast golang queue using ring-buffer

Queue A fast Golang queue using a ring-buffer, based on the version suggested by Dariusz Górecki. Using this instead of other, simpler, queue implemen

fbstatus graphically shows the gokrazy system status on the Linux frame buffer, which is typically available via HDMI when running on a Raspberry Pi or a PC.
fbstatus graphically shows the gokrazy system status on the Linux frame buffer, which is typically available via HDMI when running on a Raspberry Pi or a PC.

gokrazy framebuffer status (fbstatus) fbstatus graphically shows the gokrazy system status on the Linux frame buffer, which is typically available via

Golang module/tool for decoding proto buffer without message definition.
Golang module/tool for decoding proto buffer without message definition.

Golang module/tool for decoding proto buffer without message definition.

This POC is built with the goal to collect events/logs from the host systems such as Kubernetes, Docker, VMs, etc. A buffering layer is added to buffer events from the collector
This POC is built with the goal to collect events/logs from the host systems such as Kubernetes, Docker, VMs, etc. A buffering layer is added to buffer events from the collector

What is does This POC is build with the goal to collect events/logs from the host systems such as Kubernetes, docker, VMs etc. A buffering layer is ad

A byte buffer library for GO

gbytebuffer A byte buffer library to read/write simple variable types from/into byte slices. Conversions happen in little endian format by default but

Multi producer and multi-reader lockless ring buffer in go using generics from the go 1.18beta release

LocklessGenericRingBuffer This is an implementation of a multi producer, multi r

A logr LogSink implementation using bytes.Buffer

buflogr A logr LogSink implementation using bytes.Buffer. Usage import ( "bytes" "fmt" "github.com/go-logr/logr" "github.com/tonglil/buflogr" )

Buffer Compactor is a tool to allow for buffering for a duration and compacting data on keys.

Buffer Compactor is a tool to allow for buffering for a duration and compacting data on keys. It uses a badgerDB and sortedset in order to coridinate a time-delayed queue that also aggregates updates sharing the same key in a extremely peformant manner.

Gentee - script programming language for automation. It uses VM and compiler written in Go (Golang).

Gentee script programming language Gentee is a free open source script programming language. The Gentee programming language is designed to create scr

Gentee - script programming language for automation. It uses VM and compiler written in Go (Golang).

Gentee script programming language Gentee is a free open source script programming language. The Gentee programming language is designed to create scr

Comments
  • fails parsing with custom options in messages, enums, ...

    fails parsing with custom options in messages, enums, ...

    Hi The project fails at compiling protos with option at messages, enums, services levels. we are trying to do some custom code generating based on our custom options.

    https://developers.google.com/protocol-buffers/docs/proto3#options

    Some options are message-level options, meaning they should be written inside message definitions. Some options are field-level options, meaning they should be written inside field definitions. Options can also be written on enum types, enum values, service types, and service methods

    a proper syntax semantic based on anterl4 grammar is in here :https://github.com/antlr/grammars-v4/blob/master/protobuf3/Protobuf3.g4

    If you support this it would be great. Thanks

    opened by jozn 2
  • fails to parse file-level options

    fails to parse file-level options

    It seems like it is still struggling to parse extensions.

    $ gotoc puddingmilkshake.proto puddingmilkshake.proto:7: got "gogoproto.populate_all", want "="

    It should probably give some import error about not being able to find the import for import "github.com/gogo/protobuf/gogoproto/gogo.proto";

    Here is a link to the file. https://github.com/katydid/katydid/blob/master/asm/test/puddingmilkshake.proto

    opened by awalterschulze 4
Owner
David Symonds
David Symonds
Fast golang queue using ring-buffer

Queue A fast Golang queue using a ring-buffer, based on the version suggested by Dariusz Górecki. Using this instead of other, simpler, queue implemen

Evan Huus 478 Jan 3, 2023
Fast Raft framework using the Redis protocol for Go

This project has been archived. Please check out Uhaha for a fitter, happier, more productive Raft framework. Finn is a fast and simple framework for

Josh Baker 543 Oct 10, 2022
CLRS study. Codes are written with golang.

algorithms CLRS study. Codes are written with golang. go version: 1.11 Heap BinaryHeap on array BinaryHeap on linkedlist LeftistHeap FibonacciHeap Tre

Apollo Li 694 Dec 26, 2022
A Merkle Tree implementation written in Go.

Merkle Tree in Golang An implementation of a Merkle Tree written in Go. A Merkle Tree is a hash tree that provides an efficient way to verify the cont

Cameron Bergoon 406 Jan 5, 2023
High-performance minimalist queue implemented using a stripped-down lock-free ringbuffer, written in Go (golang.org)

This project is no longer maintained - feel free to fork the project! gringo A high-performance minimalist queue implemented using a stripped-down loc

Darren Elwood 129 Oct 24, 2022
Graph algorithms written in Go

Graph Algorithms in Go This repository contains implementations of various graph algorithms written in Go. I’ve written them to learn about these algo

Thomas Cyron 59 Dec 26, 2022
AVL tree with some useful extensions written in Go

gocover An AVL tree (Adel'son-Vel'skii & Landis) is a binary search tree in which the heights of the left and right subtrees of the root differ by at

Michael Lore 28 Mar 23, 2022
Bloomfilter written in Golang.

go-bloom-filter BloomFilter written in Golang. Implementations This repository contains several bloomfilter implementations that you can use to solve

Huy Duc Dao 2 Nov 8, 2021
A close implementation of JavaScript's Set written in Go

Set The Set struct allows unique values storing of any type. Initializing a Set s := set.New() // Empty Set s := set.New("hi", 45, Person{name: "Gophe

Sergio Ríos 0 Dec 20, 2021
Common algorithms written in Go.

Common Algorithms in Go This repository contains a collection of a variety of common algorithms implemented using Go. Algorithms Implemented Search Li

Broden Wanner 1 Dec 28, 2021