30 open-source projects similar to uber/prototool, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Prototool alternative.
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
Evans is a gRPC client and API explorer designed for testing, debugging, and automating remote procedure calls. It functions as an interactive client and a stateless command line utility for executing gRPC methods and inspecting remote server API surfaces. The tool provides specialized support for the gRPC-Web protocol to facilitate communication with web-based implementations. It enables the discovery of services and message structures through server reflection or definition files, and supports the management of unary, client-side, server-side, and bidirectional streaming communication. The
go-coffeeshop is an event-driven microservices architecture designed to manage the end-to-end lifecycle of customer orders. It coordinates independent services using asynchronous messaging patterns to handle business workflows, background processing, and order fulfillment tracking. The project utilizes a HashiCorp stack for infrastructure, employing Nomad, Consul, and Vault for service orchestration and secret storage. Infrastructure is managed through declarative automation using Terraform to ensure consistent and repeatable deployment of compute resources and networking. The system include
Buf is a toolchain for managing the full lifecycle of Protocol Buffers schemas. It provides a set of tools for schema governance, including linting to enforce style guides, a breaking change detector to ensure backward compatibility, and a system for producing language-specific source code via local or remote plugins. The project distinguishes itself through a remote schema registry that centralizes the hosting, versioning, and distribution of Protocol Buffers modules. This registry allows for server-side enforcement of governance policies, such as blocking updates that introduce backward-inc
Prost is a Protocol Buffers implementation for Rust that functions as a binary serialization framework and code generator. It translates schema definitions into idiomatic Rust structs and enums, providing the logic necessary to encode and decode structured data into the Protocol Buffers binary format. The project distinguishes itself through a no-std implementation, allowing it to operate in embedded or kernel environments that lack a standard library. It also serves as a schema introspector by emitting file descriptor sets, which enables the programmatic analysis of original schema definitio
Twirp is a Protocol Buffers RPC framework designed for implementing type-safe, distributed microservices communication over HTTP. It functions as a microservices communication framework and API code generator that produces strongly typed client stubs and server interfaces from schema definitions to eliminate manual network boilerplate. The framework ensures compatibility with existing web infrastructure by executing remote procedure calls over standard HTTP transport. It uses schema-driven contracts as a single source of truth to enable cross-language interoperability and decouple business lo
This project is a Protocol Buffers Swift library and framework providing a runtime for serializing and deserializing structured data. It includes a code generator that transforms schema files into type-safe Swift structures and a binary serialization framework for converting data into compact streams. The library functions as a JSON data mapper, transforming messages into standard JSON representations to facilitate cross-platform data exchange. It utilizes a schema-driven approach to ensure consistent data modeling between Swift applications and services written in other languages. The frame
This is a Visual Studio Code extension that integrates the Prettier formatting engine into the editor. It serves as a bridge to provide opinionated, multi-language code styling by reprinting source code from a syntax tree to enforce consistent layout and line wrapping. The extension enables automated formatting upon saving or on command, ensuring a uniform codebase across teams. It resolves styling rules by merging editor preferences, EditorConfig files, and local configuration files, and can coordinate with linters to resolve conflicting stylistic rules. The system supports a wide range of
Wire is a cross-platform code generator and implementation of gRPC and Protocol Buffers. It transforms schema definitions into type-safe native language bindings for Kotlin, Swift, and Java to ensure consistent data exchange and communication between distributed systems. The project provides specialized tools for protocol buffer schema management, including the ability to prune unused types and filter fields by version to reduce final binary sizes. It also handles namespace management and allows for the creation of custom schema handlers to execute user-defined logic during the compilation ph
Kaitai Struct is a framework for declarative binary specification that provides automated parser and serializer generation across multiple programming languages. It uses a portable, domain-specific language to describe the layout of binary files and network packets, converting these specifications into source code for reading and writing binary data. The system enables cross-language data processing by translating a single structural definition into native source code for languages including C++, C#, Go, Java, JavaScript, Python, and Rust. This approach allows the same binary data specificati
This project is a Protocol Buffers implementation for Go, providing a binary serialization framework to convert native data structures into a compact binary format for efficient network transmission and storage. It functions as a language bindings generator, utilizing a compiler plugin to create Go source code from platform-neutral protocol buffer definitions. The implementation includes a JSON data mapper that transforms structured binary messages into JSON format to facilitate compatibility with web services and external APIs. It also enables cross-language data exchange by using a common s
This project is a gRPC framework for Node.js used to implement high-performance remote procedure calls. It provides a client-server communication library that utilizes HTTP/2 for streaming, multiplexing, and binary framing, alongside a protocol buffers implementation for defining structured data and generating service stubs. The framework includes a toolchain to compile protocol buffer files into language-specific objects and supports the generation of static TypeScript type definitions to validate objects at runtime. The library covers distributed system networking and microservices communi
This project is a comprehensive technical guide to advanced Go programming. It serves as a programming guide, technical reference, and textbook covering low-level optimization and distributed systems architecture. The resource provides detailed instructions on writing assembly instructions to optimize performance-critical code and managing C-Go interoperability to bridge C libraries with Go. It also functions as a manual for implementing remote procedure call mechanisms and creating custom plugins for the Protocol Buffers compiler. The material covers high-level capabilities including the de
JSONExport is a multi-language code generator and JSON schema converter that transforms JSON data structures into strongly typed source code classes. It serves as an API response mapper, converting JSON objects into data transfer objects to automate the creation of model classes. The tool specializes in multi-language model synthesis, allowing users to define data models across different programming languages using a single JSON input. It generates class boilerplate, including constructors and accessors, and provides a preview pipeline to review the resulting source code before it is saved.
Luban is a game configuration toolchain designed to convert spreadsheet-based data into optimized binary formats and type-safe source code for multiple languages. It functions as a comprehensive suite for configuration validation, data serialization pipelines, and code generation to ensure data consistency across different platforms. The system features a multi-language code generator that produces strongly-typed data classes from schemas, eliminating the need for reflection. It includes a localization manager for exporting translated text and assets with locale-specific patching, and a seria
This project is a protocol buffer validation plugin and code generator that creates consistent validation logic across multiple programming languages. It functions as a compiler extension for the Protocol Buffer toolchain, allowing developers to define semantic constraints directly within schema files to ensure data consistency. The tool uses custom options to embed validation rules into message definitions, mapping these schema constraints to language-specific implementation patterns. It employs predicate-based constraint checking and recursive traversal to enforce rules across nested messag
gRPC-Web is a JavaScript client library that enables browser applications to call gRPC services through an HTTP proxy, using Protocol Buffers for serialization. It provides a browser-based gRPC client that supports unary, server-streaming, and bidirectional streaming RPCs, along with a code generator that produces JavaScript and TypeScript client stubs from .proto service definitions. The library includes an interceptor framework for attaching cross-cutting logic like authentication and retries to client calls, and supports setting Unix timestamp deadlines on RPCs for server-side timeout enfo
BloomRPC is a graphical user interface client for discovering, testing, and querying gRPC service endpoints. It functions as an API tester that allows for sending requests and validating responses through a visual interface without the need to write manual client code. The tool supports service discovery via the gRPC reflection API or by parsing protobuf definition files to generate request and response structures. It translates human-readable JSON input into binary protobuf format and utilizes an HTTP/2 transport layer to communicate with backend services. The application provides capabilit
grpcui is a browser-based interactive web interface and API client for executing remote procedure calls to gRPC servers. It functions as an HTTP to gRPC gateway that translates JSON payloads into binary protobuf messages, allowing users to trigger network requests and inspect responses through a visual web interface. The tool provides schema browsing and discovery capabilities by querying server reflection or loading local protobuf descriptor files to identify available services and method signatures. It uses these definitions to automatically generate dynamic input forms for constructing req
n is a command line version manager and binary manager for the Node.js runtime environment. It functions as a runtime environment switcher, allowing for the installation and management of multiple Node.js versions to maintain compatibility across different projects. The tool orchestrates the downloading and caching of Node.js binaries from official or custom distribution mirrors. It enables switching between installed versions via a command line interface or interactive menu, providing the ability to execute scripts using specific versions from a local cache without performing a full system i
Protocol Buffers is a binary serialization framework used to encode structured information into compact payloads to reduce network bandwidth and storage. It functions as a cross-language data interchange standard that enables different platforms and languages to exchange structured data using a shared schema. The project includes an interface definition language compiler that transforms schema definitions into type-safe source code for multiple target programming languages. This mechanism decouples data structures from specific language memory layouts and ensures consistent data handling acro
This project provides a functional package manager and a reproducible build system designed to ensure identical build inputs always produce the same outputs. It serves as the foundation for a declarative Linux distribution where the entire system state is defined in a configuration file, enabling predictable deployments and full-system rollbacks. The system uses a deterministic functional language and a lazy-evaluation expression engine to manage software dependencies and isolate build environments. It distinguishes itself through a content-addressable store that allows multiple versions of s
Rushstack is a comprehensive toolset for managing large-scale TypeScript monorepos, providing a framework for build pipeline automation, dependency coordination, and static analysis. It functions as an incremental build orchestrator and management system designed to maintain consistency and performance across multiple packages in a shared workspace. The system distinguishes itself through an execution model based on directed acyclic graphs and content-hash-based incrementalism, which ensures only affected projects are rebuilt. It further optimizes development workflows via remote build artifa
clash-for-linux is a proxy management platform for Linux that serves as a wrapper for Clash and Mihomo cores. It provides a system for deploying proxy binaries, managing subscriptions, and controlling network traffic interception. The platform distinguishes itself through a mixin-based configuration system that allows users to patch and override subscription settings without altering the original source files. It also includes a web-based dashboard for headless administration, enabling remote monitoring of node status, logs, and routing policies. The system supports transparent proxying via
Devenv is a Nix-based development environment manager that provides declarative definitions for reproducible shells and toolchains. It functions as a declarative task runner for executing dependency-aware pipelines and a service orchestration tool for supervising background processes. The project distinguishes itself by generating OCI container images directly from environment definitions without requiring a separate container engine. It also implements the Model Context Protocol to expose project context and package search to AI agents, and supports AI-assisted scaffolding to generate config
The GitHub ToolKit for developing GitHub Actions.
Corepack is a Node.js package manager orchestrator and deterministic tool installer. It manages and enforces specific versions of package managers to ensure consistent environments across different machines, developers, and continuous integration systems. The project uses executable wrapper shims to intercept commands, allowing it to automatically download and run the correct tool version based on project configuration. It provides an offline binary provisioner that prepares package manager binaries into tarball archives for deployment in air-gapped environments. The system handles semantic