6 个版本
新增 0.11.0 | 2024年8月16日 |
---|---|
0.10.2 | 2024年8月13日 |
0.9.1 | 2023年10月18日 |
201 在 认证 中排名
每月 下载 653 次
在 7 crates 中使用
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