2 个不稳定版本

0.2.0 2023年10月27日
0.1.0 2023年7月1日

#867 in 数据结构

GPL-3.0-or-later

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