4 个版本 (2 个重大更新)
0.3.0 | 2022年6月14日 |
---|---|
0.2.0 | 2022年2月17日 |
0.1.0 | 2021年9月27日 |
0.1.0-alpha.0 | 2021年9月23日 |
#236 在 科学
188 每月下载量
在 3 个Crates中(通过 espr-derive)使用
270KB
7K SLoC
此项目处于实验阶段。请不要用于产品。
ruststep
用纯Rust编写的STEP(产品模型数据交换标准)Crates,旨在替代 stepcode。
名称 | crates.io | docs.rs | master | 描述 |
---|---|---|---|---|
espr | EXPRESS 语言(ISO 10303-11) 编译器 | |||
espr-derive | 运行 espr 编译器的过程宏 | |||
ruststep | 序列化/反序列化 STEP 文件 | |||
ruststep-derive | 过程宏辅助Crates |
什么是 STEP?
- STEP 是一组数据序列化格式、模式语言和常见模式。
- 数据序列化格式在 ISO 文档中称为 交换结构,但通常称为 STEP 文件,它们以 ASCII 文本(ISO-10303-21,通常带有扩展名
*.step
、*.stp
或*.p21
)或 XML(ISO-10303-28)进行序列化。 - 模式语言称为 EXPRESS。EXPRESS 文件通常以扩展名
*.exp
命名。 - 许多常见模式是用 EXPRESS 语言在 ISO-10303 中定义的。
- schemas 包含副本
- 应用程序协议(AP)是一类定义的方案,本项目的主要目标。
- AP203 是 CAD(计算机辅助设计)应用中最著名的一个。
网络开发者罗塞塔石碑
协议缓冲区 | STEP(ISO 10303) | |
---|---|---|
模式语言 | Protocol Buffers 版本 3 语言规范 | EXPRESS 语言(ISO 10303-11) |
Schema 文件 | *.proto 文件 |
*.exp 文件 |
数据 | 编码的二进制数据 | "交换结构",*.step 文件(ASCII,ISO 10303-21) |
编译器 | protoc | esprc |
为什么选择 ruststep?
- STEP 不仅用于 CAD
- EXPRESS 是一种通用数据模式,类似于 Protocol Buffers
- 后来的 ISO 也使用了 EXPRESS
- 对于计算机辅助技术(CAx)包括
- 计算机辅助制造(CAM)
- 计算机辅助工程(CAE)
- 产品数据管理(PDM/EDM)
- 制造资源计划(MRP)
- 企业资源计划(ERP)
- 我们需要从 EXPRESS 模式中生成许多代码
- 用于 SQL 或 NoSQL 数据库的表,对象-记录映射器(ORM)
- 在线,内存格式
- ASCII / XML 比二进制格式(如 Protocol Buffers)效率低
- 需要可扩展的 EXPRESS 编译器
- 就像 protoc 使用 gRPC-plugin 生成 gRPC 绑定一样
路线图
已发布的功能
- 0.1.0
- 最小化 EXPRESS 编译器以生成 Rust 结构定义
- 将 STEP 文件(ASCII)反序列化为 Rust 结构
TODO 直至 1.0 版本发布
- 将 Rust 结构序列化为 STEP 文件(ASCII) https://github.com/ricosjp/ruststep/issues/13
- 将 EXPRESS 模式中的规则翻译成 Rust 代码 https://github.com/ricosjp/ruststep/issues/43
- 稳定 espr 的 AST 和 IR 表示
计划的功能
- 将二进制格式转换为 STEP ASCII 和 XML 格式
- RDB 支持,ORM 生成
许可
版权 2021 RICOS Co. Ltd.
根据 Apache License 2.0(“许可证”);除非您遵守许可证规定,否则您不得使用此文件。您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可证下分发的软件按照“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、许可权限和限制,请参阅许可证。
例外情况
以下目录包含在开发目的中。 它们不是此项目的一部分。
贡献者许可协议(CLA)
当您做出贡献(代码、文档或其他内容)时,您必须知道您的贡献受到与 ruststep 本身相同的 Apache 2.0 许可证的约束。这适用于所有贡献者,包括代表公司做出贡献的贡献者。如果您同意其内容,您只需点击拉取请求中由 CLA 助手机器人 发布的链接即可。点击它检查 CLA,然后如果您同意,则在下一个屏幕上接受它。 CLA 助手 将保存此决定以供未来贡献使用,并在其间如有任何 CLA 的更改,则会通知您。
依赖项
~4.5MB
~82K SLoC