2 个不稳定版本
0.3.0 | 2022年6月14日 |
---|---|
0.2.0 | 2022年2月17日 |
在 #cad 中排名 52
每月下载量 148
用于 2 crates
275KB
7K SLoC
该项目处于实验阶段。请勿用于产品。
ruststep
使用纯 Rust 编写的 STEP (产品模型数据交换标准) 库,旨在取代 stepcode。
名称 | crates.io | docs.rs | master | 描述 |
---|---|---|---|---|
espr | EXPRESS 语言 (ISO 10303-11) 编译器 | |||
espr-derive | 运行 espr 编译器的过程宏 | |||
ruststep | 序列化/反序列化 STEP 文件 | |||
ruststep-derive | 过程宏辅助 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(计算机辅助设计)应用中最著名的一个。
Web 开发者的罗塞塔石碑
协议缓冲区 | 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
- 生成Rust结构定义的最小EXPRESS编译器
- 将STEP文件(ASCII)反序列化为Rust结构
1.0版本发布前的TODO
- 将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许可证2.0版(“许可证”);除非遵守许可证,否则不得使用此文件。您可以在以下位置获得许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”分发的,不提供任何明示或暗示的保证或条件。有关许可证的具体语言,请参阅许可证。
例外情况
以下目录包含在开发目的中。 它们不是此项目的一部分。
贡献者许可协议(CLA)
当您做出贡献(代码、文档或其他内容)时,您必须意识到您的贡献受到与ruststep本身相同的Apache 2.0许可证的保护。这适用于所有贡献者,包括代表公司做出贡献的人。如果您同意其内容,您只需单击CLA助手机器人发布的链接作为pull request的评论即可。点击它检查CLA,然后如果您同意,则在下一个屏幕上接受它。《CLA助手》将在未来的贡献中保存此决定,并在CLL在此期间有任何变化时通知您。
依赖关系
~4MB
~65K SLoC