Prototool is a development toolkit for Protocol Buffers that provides a suite of tools for linting, formatting, and generating code from schema files. It functions as a system for managing the lifecycle of Protocol Buffer definitions through a command line interface.
The main features of uber/prototool are: Breaking Change Detectors, Protobuf Code Generators, Protobuf Formatters, Protobuf Linters, Protobuf Style Rules, API Specification Breaking Change Detectors, Protobuf Stub Generators, Multi-Language Code Generators.
Open-source alternatives to uber/prototool include: diffplug/spotless — Spotless is a multi-language formatting orchestrator and Gradle plugin that automates code styling across various… grpc/grpc-rust — grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and… ktr0731/evans — Evans is a gRPC client and API explorer designed for testing, debugging, and automating remote procedure calls. It… fullstorydev/grpcurl — grpcurl is a command-line interface and client tool for invoking gRPC methods and inspecting service definitions. It… go-swagger/go-swagger — go-swagger is a toolkit for working with Swagger/OpenAPI 2.0 specifications in Go. It generates server, client, and… thangchung/go-coffeeshop — go-coffeeshop is an event-driven microservices architecture designed to manage the end-to-end lifecycle of customer…
Spotless is a multi-language formatting orchestrator and Gradle plugin that automates code styling across various programming languages within a single build pipeline. It functions as a coordinator for multiple third-party formatters, a code style linting tool, and a system for inserting and updating standardized license headers. The project distinguishes itself through git-integrated style enforcement, using pre-push hooks and git references to apply formatting only to modified files or lines. It supports shared build configurations, allowing formatting rules to be distributed and loaded acr
grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and servers. It provides an asynchronous communication stack and a protocol buffers implementation for encoding, decoding, and generating type-safe code from service definitions. The project enables the implementation of unary and bi-directional data streaming over the HTTP/2 protocol. It includes specialized support for gRPC-Web integration, allowing browser-based clients to communicate with services through protocol translation. The infrastructure covers a broad range of distr
grpcurl is a command-line interface and client tool for invoking gRPC methods and inspecting service definitions. It serves as a server debugger and reflection client, allowing users to call remote procedures and verify server responses from the terminal using JSON or protobuf formats. The tool distinguishes itself through the ability to discover available services and methods dynamically via a server reflection service or by loading local protobuf schema files. It can extract service descriptions from a server for local use and print specific schema symbol definitions. It covers a broad ran
go-swagger is a toolkit for working with Swagger/OpenAPI 2.0 specifications in Go. It generates server, client, and CLI code from a specification document, and can also produce a specification by scanning annotated Go source code. The project includes a static validation engine that checks documents against the schema and project-specific rules, and a specification transformation pipeline that resolves, flattens, and merges documents. The toolkit generates both client and server code from the same specification, ensuring consistency in request and response handling. It also produces a command