2 个不稳定版本

0.3.0 2022年6月14日
0.2.0 2022年2月17日

#cad 中排名 52

Download history 63/week @ 2024-03-25 116/week @ 2024-04-01 28/week @ 2024-04-08 60/week @ 2024-04-15 33/week @ 2024-04-22 30/week @ 2024-04-29 48/week @ 2024-05-06 29/week @ 2024-05-13 50/week @ 2024-05-20 13/week @ 2024-05-27 23/week @ 2024-06-03 80/week @ 2024-06-10 22/week @ 2024-06-17 51/week @ 2024-06-24 14/week @ 2024-07-01 31/week @ 2024-07-08

每月下载量 148
用于 2 crates

Apache-2.0

275KB
7K 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 编译器的过程宏
ruststep Crate docs.rs cargo-doc 序列化/反序列化 STEP 文件
ruststep-derive Crate docs.rs cargo-doc 过程宏辅助 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模式生成许多代码
    • SQL或NoSQL数据库的表,对象-记录映射器(ORM)
    • 有线、内存格式
      • ASCII / XML与二进制格式(例如Protocol Buffers)相比效率低下
  • 需要可扩展的EXPRESS编译器
    • 例如,protoc使用gRPC-plugin生成gRPC绑定

路线图

已发布的功能

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

1.0版本发布前的TODO

计划的功能

  • 将二进制格式转换为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