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 日

#50 in #cad

每月 40 次下载
用于 3 crates

Apache-2.0

70KB
1.5K SLoC

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

ruststep

用纯 Rust 编写的 STEP (产品数据交换标准) 库,旨在替代 stepcode

名称 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 辅助 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模式生成许多代码
    • SQL或NoSQL数据库的表格,对象-记录映射器(ORM)
    • 线路上,内存格式
      • ASCII / XML与二进制格式(如Protocol Buffers)相比效率低下
  • 需要可扩展的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 License,版本2.0(“许可”);除非遵守许可,否则您不得使用此文件。您可以在以下地址获取许可副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可的具体语言、许可权和限制,请参阅许可。

例外

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

贡献者许可协议(CLA)

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

依赖关系

~4MB
~78K SLoC