awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
uber avatar

uber/prototoolArchived

0
View on GitHub↗
5,036 星标·338 分支·Go·MIT·9 次浏览

Prototool

Prototool 是一个 Protocol Buffers 开发工具包,提供了一套用于对 schema 文件进行 lint 检查、格式化和代码生成的工具。它通过命令行界面管理 Protocol Buffer 定义的生命周期。

该工具包的特色在于提供了一个破坏性变更检测器,通过比较不同版本的定义来识别线路或源代码层面的不兼容变更。它还包含一个 gRPC 客户端接口,能够通过动态编译 Protobuf 定义来使用 JSON 请求调用端点。

该项目涵盖了广泛的功能领域,包括 schema 验证和样式强制执行、特定语言的代码存根生成以及自动化的编译器二进制文件管理。它还提供了用于导出文件描述符集和自动生成样板 schema 文件的实用程序。

Features

  • Breaking Change Detectors - Identifies wire and source incompatible changes by comparing serialized FileDescriptorSets between different versions of definitions.
  • Protobuf Code Generators - Produces language-specific source code and file descriptor sets from Protocol Buffer definitions.
  • Protobuf Formatters - Standardizes the layout of schema files by alphabetizing imports and applying consistent spacing.
  • Protobuf Linters - Analyzes schema files against configurable rule groups to enforce naming conventions and structural requirements.
  • Protobuf Style Rules - Provides static analysis of Protobuf schemas to enforce naming conventions and structural rules via AST traversal.
  • API Specification Breaking Change Detectors - Compares different versions of Protobuf definitions to identify incompatible changes that could break service clients.
  • Protobuf Stub Generators - Generates language-specific client and server stubs from Protocol Buffer interface definitions.
  • Multi-Language Code Generators - Transforms schema definitions into source code for various languages using managed compiler versions.
  • Protobuf Code Generators - Generates language-specific source code from Protobuf definitions using a configuration-driven template mapping.
  • Style Enforcement Strategies - Validates schema files against a set of rules for naming, ordering, and structure to ensure consistency.
  • JSON-to-gRPC Translation - Enables calling gRPC endpoints using JSON requests by dynamically compiling Protobuf definitions.
  • Protobuf Syntax Validation - Validates schema files by compiling them without output stubs to ensure syntax correctness.
  • Binary Cache Managers - Manages the downloading and caching of specific compiler binaries and type definitions to ensure consistent builds.
  • Binary Process Wrappers - Wraps the official Protocol Buffer compiler to manage its installation and execution across different environments.
  • Compiler Binary Management - Buf CLI & Automation downloads, caches, and updates the schema compiler and type definitions automatically or via configuration.
  • gRPC Command-Line Clients - Provides a command-line interface for invoking gRPC methods and inspecting service definitions using JSON.
  • Interactive Clients - Enables sending JSON requests to gRPC servers by dynamically compiling Protobuf files.
  • gRPC API Testing - Sends JSON requests to gRPC endpoints by dynamically compiling Protobuf files to validate server behavior.
  • Protocol Buffer Tools - Integrated suite for compiling, linting, and formatting Protobuf files.

Star 历史

uber/prototool 的 Star 历史图表uber/prototool 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Prototool 的开源替代方案

相似的开源项目,按与 Prototool 的功能重合度排序。
  • diffplug/spotlessdiffplug 的头像

    diffplug/spotless

    5,527在 GitHub 上查看↗

    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

    Java
    在 GitHub 上查看↗5,527
  • grpc/grpc-rustgrpc 的头像

    grpc/grpc-rust

    12,338在 GitHub 上查看↗

    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

    Rustasyncgrpcproto
    在 GitHub 上查看↗12,338
  • go-swagger/go-swaggergo-swagger 的头像

    go-swagger/go-swagger

    9,989在 GitHub 上查看↗

    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

    Goapicode-generatorgo
    在 GitHub 上查看↗9,989
  • fullstorydev/grpcurlfullstorydev 的头像

    fullstorydev/grpcurl

    12,691在 GitHub 上查看↗

    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

    Gogolanggrpcprotobuf
    在 GitHub 上查看↗12,691
查看 Prototool 的所有 30 个替代方案→

常见问题解答

uber/prototool 是做什么的?

Prototool 是一个 Protocol Buffers 开发工具包,提供了一套用于对 schema 文件进行 lint 检查、格式化和代码生成的工具。它通过命令行界面管理 Protocol Buffer 定义的生命周期。

uber/prototool 的主要功能有哪些?

uber/prototool 的主要功能包括: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。

uber/prototool 有哪些开源替代品?

uber/prototool 的开源替代品包括: 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… go-swagger/go-swagger — go-swagger is a toolkit for working with Swagger/OpenAPI 2.0 specifications in Go. It generates server, client, and… fullstorydev/grpcurl — grpcurl is a command-line interface and client tool for invoking gRPC methods and inspecting service definitions. It… ktr0731/evans — Evans is a gRPC client and API explorer designed for testing, debugging, and automating remote procedure calls. It… thangchung/go-coffeeshop — go-coffeeshop is an event-driven microservices architecture designed to manage the end-to-end lifecycle of customer…