4 个仓库
Plugins that generate language-specific source code from protocol buffer schema definitions.
Distinct from Code Generation Plugins: Specifically focuses on schema-to-code generation for Protobuf, whereas the parent covers general code generation pipeline plugins.
Explore 4 awesome GitHub repositories matching software engineering & architecture · Protobuf Code Generators. Refine with filters or upvote what's useful.
这是一个 Go 语言的 Protocol Buffers 实现,提供了一个二进制序列化框架,可将原生数据结构转换为紧凑的二进制格式,以实现高效的网络传输和存储。它充当语言绑定生成器,利用编译器插件从平台无关的协议缓冲区定义中创建 Go 源代码。 该实现包含一个 JSON 数据映射器,可将结构化二进制消息转换为 JSON 格式,以促进与 Web 服务和外部 API 的兼容性。它还通过使用通用模式定义在不同编程语言之间共享结构化数据,从而实现跨语言数据交换。 该库涵盖了广泛的数据序列化和反序列化功能,包括通过克隆、合并和比较来操作结构化消息的能力。它还提供了基于反射的消息检查机制和递归消息合并功能,以在分布式系统中保持状态一致性。
Provides a compiler plugin that generates Go source code from platform-neutral protocol buffer definitions.
Prototool 是一个 Protocol Buffers 开发工具包,提供了一套用于对 schema 文件进行 lint 检查、格式化和代码生成的工具。它通过命令行界面管理 Protocol Buffer 定义的生命周期。 该工具包的特色在于提供了一个破坏性变更检测器,通过比较不同版本的定义来识别线路或源代码层面的不兼容变更。它还包含一个 gRPC 客户端接口,能够通过动态编译 Protobuf 定义来使用 JSON 请求调用端点。 该项目涵盖了广泛的功能领域,包括 schema 验证和样式强制执行、特定语言的代码存根生成以及自动化的编译器二进制文件管理。它还提供了用于导出文件描述符集和自动生成样板 schema 文件的实用程序。
Generates language-specific source code from Protobuf definitions using a configuration-driven template mapping.
Wire 是一个跨平台的代码生成器,也是 gRPC 和 Protocol Buffers 的实现。它将模式定义转换为 Kotlin、Swift 和 Java 的类型安全原生语言绑定,以确保分布式系统之间的一致数据交换和通信。 该项目提供了用于 Protocol Buffer 模式管理的专门工具,包括修剪未使用类型和按版本过滤字段以减小最终二进制大小的能力。它还处理命名空间管理,并允许创建自定义模式处理器以在编译阶段执行用户定义的逻辑。 该框架涵盖了广泛的功能,包括为同步和异步远程过程调用生成服务接口、将模式类型映射到原生语言原语,以及将消息序列化为 JSON。它还包括对生成可打包 (parcelable) 消息和用于测试的模拟客户端的支持。
Generates language-specific source code directly from protocol buffer schema definitions.
这是一个 Protocol Buffer 验证插件和代码生成器,可在多种编程语言中创建一致的验证逻辑。它作为 Protocol Buffer 工具链的编译器扩展,允许开发人员直接在模式文件中定义语义约束,以确保数据一致性。 该工具使用自定义选项将验证规则嵌入到消息定义中,并将这些模式约束映射到特定语言的实现模式。它采用基于谓词的约束检查和递归遍历,以在嵌套消息层级中强制执行规则。 验证范围涵盖数值范围和值、字符串模式和格式、字节序列约束以及枚举强制执行。它还管理集合和重复字段大小、时间戳和持续时间的复杂类型验证,以及联合字段选择的要求。
Functions as a protoc plugin to generate language-specific validation source code from Protocol Buffer schemas.