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日

#236科学

Download history 6/week @ 2024-03-11 54/week @ 2024-03-25 89/week @ 2024-04-01 30/week @ 2024-04-08 65/week @ 2024-04-15 37/week @ 2024-04-22 34/week @ 2024-04-29 56/week @ 2024-05-06 33/week @ 2024-05-13 53/week @ 2024-05-20 13/week @ 2024-05-27 29/week @ 2024-06-03 82/week @ 2024-06-10 25/week @ 2024-06-17 50/week @ 2024-06-24

188 每月下载量
3 个Crates中(通过 espr-derive)使用

Apache-2.0

270KB
7K SLoC

此项目处于实验阶段。请不要用于产品。

ruststep

用纯Rust编写的STEP(产品模型数据交换标准)Crates,旨在替代 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 过程宏辅助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)
模式语言 Protocol Buffers 版本 3 语言规范 EXPRESS 语言(ISO 10303-11)
Schema 文件 *.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 结构

TODO 直至 1.0 版本发布

计划的功能

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

许可

版权 2021 RICOS Co. Ltd.

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

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

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

例外情况

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

贡献者许可协议(CLA)

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

依赖项

~4.5MB
~82K SLoC