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 日 |
#50 in #cad
每月 40 次下载
用于 3 crates
70KB
1.5K SLoC
此项目仍处于实验阶段。请勿用于产品。
ruststep
用纯 Rust 编写的 STEP (产品数据交换标准) 库,旨在替代 stepcode。
名称 | crates.io | docs.rs | master | 描述 |
---|---|---|---|---|
espr | EXPRESS 语言 (ISO 10303-11) 编译器 | |||
espr-derive | 用于运行 espr 编译器的 proc-macro | |||
ruststep | 序列化/反序列化 STEP 文件 | |||
ruststep-derive | proc-macro 辅助 crate |
什么是 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) | |
---|---|---|
模式语言 | 协议缓冲区版本 3 语言规范 | EXPRESS 语言 (ISO 10303-11) |
模式文件 | *.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结构
待办事项直到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(“许可”);除非遵守许可,否则您不得使用此文件。您可以在以下地址获取许可副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可的具体语言、许可权和限制,请参阅许可。
例外
以下目录包含在开发目的中。 它们不是此项目的一部分。
贡献者许可协议(CLA)
当您做出贡献(代码、文档或其他内容)时,您必须意识到您的贡献受适用于ruststep本身的相同Apache 2.0许可的保护。这适用于所有贡献者,包括代表公司做出贡献的贡献者。如果您同意其内容,您只需单击CLA助手机器人发布的链接作为拉取请求的评论即可。单击链接检查CLA,然后在下一个屏幕上接受它,如果您同意它。《CLA助手》将保存此决定以供未来贡献使用,并在CL A在此期间有任何变更时通知您。
依赖关系
~4MB
~78K SLoC