7 个仓库
Plugins that extend a code generation pipeline by adding custom generation steps, middleware, or transport layers.
Distinct from Plugin-Based Extensibility: Distinct from Plugin-Based Extensibility: specifically targets code generation pipeline extensions, not general application plugin architectures.
Explore 7 awesome GitHub repositories matching software engineering & architecture · Code Generation Plugins. 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.
Goa is a design-first Go framework that generates server and client code, documentation, and request validation from a single declarative domain-specific language (DSL). At its core, it provides a Go DSL for defining API endpoints, data types, and error models, which compiles into fully functional HTTP and gRPC server stubs, client packages, and OpenAPI specifications. The framework distinguishes itself through its plugin-extensible code generation pipeline, allowing custom code generation steps, middleware, or transport layers to be added via plugins. It supports multiple transport protocols
Ships a plugin system for extending the design compilation pipeline with custom code generation steps and transport layers.
This project is a Protocol Buffers Go compiler and code generation framework that translates schema definitions into optimized Go structures and reflection-free serialization methods. It includes a gRPC service generator for producing client and server communication code and a serialization performance toolkit for generating automated benchmarks and test suites. The framework features a plugin-based system for transforming data definitions into source code with custom field mapping and struct tag injection. It allows for custom type mapping and struct type overriding to link data fields to sp
Provides a plugin-based architecture allowing users to add custom generation steps to the code production pipeline.
MyBatis Generator 是一个检查数据库表以自动生成模型对象、映射器接口和 SQL 配置文件的工具。它作为一个数据库模式映射器和 CRUD 操作生成器,将关系数据库列转换为特定语言的类和记录。 该项目是一个可扩展的代码生成器,允许通过插件机制自定义输出文件。该框架支持添加特定的业务逻辑或修改生成过程,以产生定制的输出文件。 该生成器涵盖了广泛的功能,包括动态查询的实现、不可变模型的创建以及标准增删改查(CRUD)操作的自动化。它支持具有虚拟主键的数据库模式映射,并能为包括 Kotlin 在内的多种语言生成代码。 生成过程可以通过命令行工具、直接函数调用或作为集成到持续集成流水线中的构建工具插件来执行。
Modifies the behavior of generated files using a plugin mechanism to add specific logic or structures.
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.