#data #dsl #random #generator #test

bin+lib dgen

用于生成任何格式的测试数据的解释型 DSL

2 个版本

使用旧 Rust 2015

0.1.1 2018年10月22日
0.1.0 2018年10月22日

#1651 in 编码

MIT 许可证

140KB
3.5K SLoC

dgen

Build Status

生成恶意的测试数据

dgen 是一个 CLI 工具,用于生成任意格式的伪随机数据。目标是拥有一个在文本和二进制格式上都同样优秀的工具。Pgen 实际上只是一个简单领域特定函数语言的解释器。语法在 这里 有文档说明。

示例

以下程序将打印 10 个随机引号词,每行一个

$ dgen run -p 'repeat_delimited(10, double_quote(words()), "\n")'
"gule"
"erugation"
"avouchment"
"hymnless"
"reclusory"
"deferral"
"debauched"
"unenervated"
"charkhana"
"sheatfish"

Pgen 程序通过调用 dgen run 并以几种方式提供程序输入来调用

  • -p, --program:程序可以通过命令行提供。对于简单表达式来说,这是最简单的方式。
  • -, --program-file:将给定文件解释为程序。对于更复杂的程序来说,这是不错的选择。
  • -, --stdin:从 stdin 读取程序

您还可以使用 --lib 选项将您自己的库添加到程序作用域中。

PGen 还有一系列内置函数。您可以通过执行 dgen help 来列出内置函数。您还可以使用 pgen help --function <name> 通过名称过滤函数列表。当然,pgen -h 会打印出所有可用选项的信息。

更多信息请查看 示例

构建

dgen 使用 Rust 构建,需要版本 1.26 或更高版本。只需简单的 cargo build --release 命令即可生成发布版本二进制文件。目前构建仅在 OSX 和 GNU/Linux 上进行了测试,但计划很快开始在 Windows 上进行测试™️。

稳定性

该项目仍处于非常初期的阶段,因此随时都可能发生重大变更。我仍在尝试各种语言和语法的不同方面。如果您对此有任何意见,请提交一个问题!

贡献

欢迎新贡献者!请随时提交PR或提交问题。

依赖关系

约11MB
约189K SLoC