4个版本 (2个重大变更)

0.3.0 2022年6月14日
0.2.0 2022年2月17日
0.1.0 2021年9月27日
0.1.0-alpha.02021年9月23日

#166 in 科学


用于 2 crates

Apache-2.0

1MB
20K SLoC

此项目仍处于实验阶段。请勿用于产品。

ruststep

使用纯Rust编写的用于替换stepcode的STEP (产品模型数据交换标准) Crates。

名称 crates.io docs.rs master 描述
espr Crate docs.rs cargo-doc EXPRESS语言(ISO 10303-11) 编译器
espr-derive Crate docs.rs cargo-doc 运行espr编译器的proc-macro
ruststep Crate docs.rs cargo-doc 序列化/反序列化STEP文件
ruststep-derive Crate docs.rs cargo-doc proc-macro辅助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)
模式语言 协议缓冲区版本3语言规范 EXPRESS语言(ISO 10303-11)
模式文件 *.proto 文件 *.exp 文件
数据 编码的二进制数据 “交换结构”,*.step 文件(ASCII,ISO 10303-21)
编译器 protoc esprc

为什么选择 ruststep?

  • STEP 不仅用于 CAD
  • 我们必须从 EXPRESS 模式中生成许多代码
    • 用于 SQL 或 NoSQL 数据库、对象-记录映射器(ORM)的表
    • 网络、内存格式
      • ASCII / XML 比二进制格式(如协议缓冲区)效率低
  • 需要可扩展的 EXPRESS 编译器
    • 例如,protoc 使用 gRPC-plugin 生成 gRPC 绑定

路线图

已发布功能

  • 0.1.0
    • 最小 EXPRESS 编译器,用于生成 Rust 结构定义
    • 将 STEP 文件(ASCII)反序列化为 Rust 结构

待办事项直到 1.0 版本发布

计划中的功能

  • 将二进制格式转换为 STEP ASCII 和 XML 格式
  • 支持 RDB,生成 ORM

许可证

版权 2021 RICOS Co. Ltd.

根据 Apache 许可证版本 2.0(“许可证”);除非遵守许可证规定,否则不得使用此文件。您可以在以下位置获得许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“现状”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的特定语言管理许可和限制,请参阅许可证。

例外情况

以下目录包含在开发目的中。 它们不是此项目的一部分

贡献者许可协议(CLA)

当您做出贡献(代码、文档或其他内容)时,您必须意识到您的贡献受与 ruststep 本身相同的 Apache 2.0 许可证的约束。这适用于所有贡献者,包括代表公司做出贡献的人。如果您同意其内容,您只需点击拉取请求中发布的链接作为评论即可。点击它以检查 CLA,然后在下一屏上接受它,如果您同意它。 CLA assistant 将保存此决定以供未来的贡献使用,并在其间如果 CLA 发生任何变化,将通知您。

依赖关系

~5MB
~95K SLoC