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, 代码生成, 子域名突变, 开发工具, 日志审计, 渗透测试工具, 编译器基础, 解析器