#schema #validation #parser #csv #fixed-width #schema-file #data-file

rsapar

RSaPar 是一个基于模式的 Rust 库,用于结构化数据文件的解析和验证,灵感来自 Java 的 JSaPar。

1 个不稳定版本

0.1.1 2024年4月9日
0.1.0 2024年2月17日

#2519 in 解析器实现

Download history

每月130次下载

MIT/Apache

34KB
667 代码行

👋 概览

RSaPar 是一个基于模式的 Rust 库,用于结构化数据文件的解析和验证,灵感来自 Java 的 JSaPar。

💻 使用

要使用 RSaPar,您需要定义一个 ParserConfig 并调用 parser() 方法。

以下是如何开始的分步指南

  1. 使用以下命令将 RSaPar 添加到您的项目中

    cargo add rsapar
    
  2. 定义数据模式: 创建一个描述数据结构的 schema XML 文件 (schema.xml)。模式格式试图遵循 JSaPar 模式格式的相同规则。RSaPar 对 JSaPar 模式格式的支持和兼容性将很快提供详细文档。示例模式可以在 example 文件夹中找到。

  3. 配置解析器: 使用数据文件路径、工作进程数和模式文件路径设置解析器配置。

    use rsapar::ParserConfig;
    
    let config = ParserConfig {
        file_path: "./example/data.txt".to_string(),
        fn_worker: None,
        n_workers: 4,
        file_schema: "./example/schema.xml".to_string(),
    };
    
    let result = rsapar::parser(config);
    

此设置提供了如何开始使用 RSaPar 的简要概述。模式结构受 JSaPar 启发,未来将提供更多有关此对齐的信息。

🚀 路线图

  • 完全支持固定宽度文件的验证(v0.1.2)

有关即将推出功能和版本详情,请参阅 里程碑

💫 贡献

贡献使开源社区繁荣。对 RSaPar 的贡献 非常受赞赏

要贡献,请 fork 仓库,创建您的功能分支,并提交拉取请求。对于错误或建议,请打开带有适当标记的问题(错误使用 bug,改进使用 enhancement)。不要忘记为项目加星!

感谢您的支持!

🪪 许可证

在 MIT 或 Apache-2.0 许可证下分发。

请注意,尽管 RSaPar 试图遵循与 JSaPar 相同的模式格式规则,但它是一个独立的实现,不重用 JSaPar 代码库。

依赖关系

~3.5–5MB
~80K SLoC