6 个版本

新增 0.11.0 2024年8月16日
0.10.2 2024年8月13日
0.9.1 2023年10月18日

201认证 中排名

Download history 10/week @ 2024-05-01 10/week @ 2024-05-08 34/week @ 2024-05-15 21/week @ 2024-05-22 13/week @ 2024-05-29 15/week @ 2024-06-05 34/week @ 2024-06-12 10/week @ 2024-06-19 10/week @ 2024-06-26 4/week @ 2024-07-10 11/week @ 2024-07-17 22/week @ 2024-07-24 26/week @ 2024-07-31 250/week @ 2024-08-07 355/week @ 2024-08-14

每月 下载 653
7 crates 中使用

Apache-2.0

30KB
513

streambed-rs - 用于编写事件驱动服务的有效和精选工具包

事件驱动缩小了理解问题领域和在代码中表达该问题之间的差距。

Streambed 是一套精选的依赖关系和工具包,用于编写旨在在 Rust 支持的最小 "std" 目标上运行的异步事件驱动服务。基于 Streambed 的程序目前使用一个运行在约 500MHz 和 128MiB 的单核 MIPS32 OpenWrt 设备作为基准目标。

提供了一个基于 Apache Kafka 的提交日志模型,以及部分和扩展对 Kafka HTTP API 的支持。

提供了一个基于 Hashicorp Vault 的秘密存储模型,以及部分对 Vault HTTP API 的支持。

使用提交日志和秘密存储的生产服务已被证明使用少于 3MiB 的常驻内存,同时提供良好的性能。

Streambed 的特性

事件驱动服务

事件驱动服务通过将事件推送到需要消费的地方(即系统的用户)来提高响应性。事件驱动服务也具有容错性,因为它们可以使用“事件溯源”通过重放事件快速重建其状态。

高效

基于 Streambed 的应用程序旨在在边缘嵌入式计算机以及云中运行,因此高效的 CPU、内存和磁盘使用是首要考虑。

安全

在整个 Streambed 的设计中,安全也是一个主要考虑因素。例如,在物联网的世界中,如果单个传感器被入侵,其影响范围可以最小化。

适用于集成

Streambed 是一个工具包,它促进了许多第三方应用程序之间数据的一致性共享。不再有数据孤岛。数据可用性的提高有助于做出更好的决策,进而带来更好的业务。

站在巨人的肩膀上,利用现有社区

Streambed 是一套经过验证的方法和技术集合,已经拥有强大的社区。如果您在那里遇到问题,有许多人和资源可供您求助。

开源和开放标准

Streambed 完全开源,提供成本效益、快速上市时间、避免供应商锁定、提高安全性等优点。

Rust

Streambed 利用 Rust 编写快速、高效软件的正确特性。

最低支持的 Rust

streambed-rs 至少需要 Rust 版本 1.70.0 稳定版(2023 年 6 月),但推荐使用 Rust 的最新稳定版本。

简要历史及为何选择 Rust

Streambed-jvm 最初作为一个基于 Scala 的项目出现,与 streambed-rs 有类似的目标,针对能够运行 JVM 的大型机器。思科公司赞助 Titan Class Pty Ltd 开发 streambed-jvm,旨在针对农场边缘的路由器。Titan Class 在澳大利亚的几个农场边缘运行 Streambed,并且已经这样做了几年。这种经验证明了 Streambed 所基于的事件驱动方法。它还突显了鉴于边缘能源是一个挑战,需要寻找更节能的解决方案。因此,Streambed-jvm 使用 Rust 重新编写。

贡献政策

欢迎原始作者通过 GitHub 拉取请求提交贡献。请在与任何拉取请求一起说明,贡献是您的原创作品,并且您将按照项目的开源许可将作品许可给项目。无论您是否明确说明,通过拉取请求、电子邮件或其他方式提交任何版权材料,您同意按照项目的开源许可许可材料,并保证您有合法权利这样做。

许可

本代码是开源软件,根据 Apache-2.0 许可证 许可。

© 版权所有 Titan Class P/L,2022

依赖项

~5–17MB
~237K SLoC