kubernetes/gengo

GitHub: kubernetes/gengo

Kubernetes 团队从 code-generator 中抽离的通用 Go 代码生成库,提供类型解析、命名管理和模板驱动的代码生成框架。

Stars: 580 | Forks: 210

# gengo [![Travis Widget]][Travis] [![GoDoc Widget]][GoDoc] [![GoReport]][GoReportStatus] 注意:[`k8s.io/gengo/v2`](https://github.com/kubernetes/gengo/tree/master/v2) 是当前的开发 module。 一个用于基于 go 文件生成内容的 package。此机制最早被用于 [Kubernetes code-generator](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/code-generator),为了便于重用和维护,在此将其拆分出来。 `go get k8s.io/gengo/...` ## 示例 这里包含了一个 set generator、deep-copy generator、defaulter generator 和 go-to-protobuf generator。此外,import-boss 将强制执行关于 import 树的任意规则。 ## args/ Package args 定义了 generator 二进制文件的通用参数。 ## generator/ Package generator 定义了供 code generator 实现的 interface,以及将执行这些 code generator 的机制。 ## types/ Package types 包含了 type system 的定义。它以 Go 的 type system 为模型,但如果您想编写 parser/converter,也可以通过解析其他内容来生成这些类型。 我们没有直接使用 go typecheck 库中的 go 类型,因为它们是基于实现不同的 interface 而构建的。对于基于模板驱动的输出而言,基于 struct 的格式是更方便的输入。 ## parser/ Package parser 用于解析 go 源文件。 ## namer/ Package namer 定义了一个命名系统,用于: * 帮助您以语法正确的方式引用 go 对象 * 跟踪您所引用的内容,以便 import 正确的 package * 并定义平行的名称轨,用于创建 public interface 和 private implementation。 ## 贡献 请查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解如何贡献。
标签:EVTX分析, Go, Ruby工具, SOC Prime, 代码生成, 子域名突变, 开发工具, 日志审计, 渗透测试工具, 编译器基础, 解析器