19 个版本 (7 个重大更新)

0.8.1 2022 年 10 月 18 日
0.8.0 2022 年 7 月 20 日
0.7.1 2022 年 6 月 2 日
0.6.0 2022 年 3 月 18 日
0.1.0 2020 年 10 月 9 日

#304Rust 模式

Download history 1587/week @ 2024-03-15 1606/week @ 2024-03-22 1548/week @ 2024-03-29 1684/week @ 2024-04-05 1726/week @ 2024-04-12 1457/week @ 2024-04-19 1436/week @ 2024-04-26 1329/week @ 2024-05-03 1552/week @ 2024-05-10 1369/week @ 2024-05-17 952/week @ 2024-05-24 1676/week @ 2024-05-31 1527/week @ 2024-06-07 1875/week @ 2024-06-14 1493/week @ 2024-06-21 783/week @ 2024-06-28

5,850 每月下载量
用于 3 个 crate (2 个直接使用)

MIT/Apache

115KB
2K SLoC

Gazebo - Rust 实用工具库

Support Ukraine GitHub link crates.io version docs.rs availability Build status

这个库包含了一组经过充分测试的实用工具。大多数模块都是独立的,但通过一些代表性的示例

  • gazebo::prelude::* 可以这样导入,并提供对常用类型的扩展特质。例如,它提供了 Vec::map,这相当于 iter().map(f).collect::<Vec<_>>(),以及类似 splitstr::split1,但只分割一次。我们希望其中一些函数有一天能进入 Rust 标准库。
  • gazebo::dupe 提供了具有成员 dupeDupe 特质,它们都与 Clone 完全一样。区别在于 Dupe 不应实现为重新分配或有昂贵 clone 操作的类型 - 例如,存在 DupeArcusize,但不为 StringVec。通过使用 dupe,可以轻松关注 clone 调用(应该是很少见的)并忽略成本最小的事物。
  • gazebo::cell::ARef 提供了一种类型,该类型要么是 Ref<T>,要么是直接引用 &T,具有使它看起来像 Ref 的操作,允许您将引用统一转换为类似 Ref 的东西。
  • gazebo::any::AnyLifetime 提供了一个类似 Any 的特性,但不需要 'static 生命周期,代价是更多的样板代码。

Gazebo 提供的功能并不稳定,并且随着新功能的添加(当我们发现新的有用功能时)和删除(当我们发现更好的模式或封装想法更好的库时)而不断发展。虽然代码在有用性和设计质量上有所不同,但它都经过了良好的测试和文档记录。

使用 Gazebo

您可以通过将 gazebo 添加到您的 [dependencies] 中,使用标准的 Cargo 模式 来依赖 Gazebo。

该仓库中有两个有趣的目录是 gazebo(其中包含 Gazebo 本身的源代码)和 gazebo_derive(其中包含对 #[derive)] 和其他 Gazebo 特性的支持)。通常您会直接导入 gazebo,但如果您从 GitHub 获取库,则 gazebo_derive 是必需的传递依赖项。

了解更多信息

您可以在 这个入门视频 中了解更多关于 Gazebo 的信息,或从以下博客文章中了解

发布版本

  1. 检查 GitHub Actions 是否为绿色。
  2. 使用自上次发布以来的更改更新 CHANGELOG.md此链接 可以帮助(更新为与上次发布进行比较)。
  3. 更新两个 Cargo.toml 文件中的版本号。如果没有不兼容的更改,则通过 0.0.1 进行提升,如果有,则通过 0.1.0 进行提升。将 gazebo 中的依赖项提升到最新的 gazebo_derive 版本。
  4. CHANGELOG.md、两个 LICENSE- 文件和 README.md 文件复制到每个 gazebogazebo_derive 子目录。
  5. 运行 cargo publish --allow-dirty --dry-run,然后在不包含 --dry-run 的情况下,首先在 gazebo_derive 目录中,然后在 gazebo 目录中运行。
  6. 使用 gazebo 版本作为名称,创建一个 GitHub 发布,版本号为 v0.X.Y

许可证

Gazebo 采用 MIT 和 Apache 许可证,版本 2.0,如 LICENSE-MITLICENSE-APACHE 文件所示。

依赖项

~1.5MB
~35K SLoC