2 个不稳定版本
0.2.0 | 2023年10月27日 |
---|---|
0.1.0 | 2023年7月1日 |
#867 in 数据结构
120KB
3K SLoC
insrcdata
嵌入你的数据
insrcdata 是一个源代码生成器,可以将表格数据作为静态数组嵌入
为什么要在代码中嵌入数据
数据是软件的核心。大部分数据必须由软件的编辑提供。将其静态集成到源代码中有几个优点
访问嵌入数据速度快,因为它避免了从文件或数据库读取的性能开销。
访问是可靠的,因为编译器可以在编译时检查数据完整性,并在数据访问期间避免运行时错误。
程序部署更简单,因为只有一个文件需要分发。你还可以更好地控制代码和数据的一致性:新代码永远不会因为旧数据而中断。
软件开发速度更快,因为需要更少的代码来获取数据,并且调试要容易得多。
为什么使用 insrcdata
程序员可以手动编写任何东西,但 innexata 将使他们的生活更容易。
大多数时候,领域专家使用自己的工具来制作程序所需的数据。程序员将不得不将这些工具的输出重写为编程语言的语法。这项繁琐且易出错的任务将通过 insrcdata 避免掉。
一些功能不易手动编写。例如,insrcdata 可以生成索引搜索和表连接的代码,或自动计算整数数据类型的宽度以最小化数据列的大小。
可以生成多种语言的代码:目前支持 Rust 和 C,其他目标正在计划中。
用法
insrcdata 是一个命令行工具,可以从 [.csv](逗号分隔值) 文件中的数据和 .toml 文件中的配置生成源代码
您可以在示例目录中找到多种用途。我们建议从HelloWorld教程开始。
安装
请注意,不需要安装cargo构建脚本。
您可以从源代码构建insrcdata。您需要Rust编译器套件。
在终端中,转到insrcdata源代码的根目录,并输入
cargo build
您将在target/debug子目录中找到insrcdata可执行文件。
数据源csv文件
您将使用每个表一个文件。文件的第一行是标题行,定义了列的名称。
以下行是数组中将要实现表的行。
配置文件
第一级节对应于项目中定义的表。第二级节是表的列。更多信息可以在仓库根目录下的template.toml中找到。
wiki包含详细文档。
运行insrcdata
在终端窗口中输入以下命令
insrcdata myconfig.toml
其中myconfig.toml是您的配置文件路径
使用insrcdata --help获取选项列表。
许可
源代码可在GNU通用公共许可证v3.0或更高版本下获得。
由insrcdata生成的输出文件不受GNU GPL的约束,可以以用户选择的任何许可证分发,同时尊重输入数据的版权。
联系方式:[email protected]
依赖关系
~2.6–3.5MB
~56K SLoC