#actor-framework #telemetry #low-latency #service #supervisor #state #communication

steady_state

基于 Linux 的构建长期运行低延迟 actor 服务的框架。提供可视化遥测来监视 actor 之间的数据流。使用 earlang 风格的监督者来防御崩溃,并使用非阻塞异步环形缓冲区进行 actor 间通信。

3 个版本

0.0.19 2024 年 7 月 19 日
0.0.18 2024 年 7 月 8 日
0.0.17 2024 年 6 月 17 日
0.0.15 2024 年 5 月 13 日
0.0.1 2024 年 1 月 25 日

#171 in 并发

Download history 168/week @ 2024-04-15 164/week @ 2024-05-13 2/week @ 2024-05-20 159/week @ 2024-06-10 204/week @ 2024-06-17 64/week @ 2024-07-01 115/week @ 2024-07-08 102/week @ 2024-07-15 10/week @ 2024-07-22 159/week @ 2024-07-29

每月 386 次下载

MIT 许可证

530KB
9K SLoC

steady_state: Rust 框架在弹性服务中的下一个前沿

'steady_state' 开始了一段雄心勃勃的旅程,旨在彻底改变 Rust 中弹性、高性能服务的开发。凭借对集成高级延迟管理、系统可观察性和无与伦比的容错性的明确愿景,steady_state 旨在为软件可靠性和效率树立新的标准。

*请注意:这些旧快照可能不匹配最新的更新。遥测可视化示例 一个演示实时遥测可视化的动画 GIF。 遥测可视化示例 遥测可视化示例 *更复杂示例的快照

为什么选择 steady_state

以其对保持一致、最优运行状态的承诺命名,steady_state 提供了

  • 精细的延迟控制:通过可定制的批量处理和可调整的通道长度,使开发者能够满足严格的 SLA 要求。
  • 嵌入式可观察性:内置遥测功能,提供实时性能洞察,便于有针对性的优化。
  • Erlang 风格的容错性:利用先进的监督系统确保服务连续性,即使在意外失败的情况下。
  • 清晰的关闭逻辑:适用于需要以良好顺序关闭 actor 的物联网、机器人学和其他许多系统。

核心功能

steady_state 被精心打造,以确保安全、可靠和性能,重点关注

  • 安全和并发:利用 Rust 的内存安全特性和基于 actor 的监督线程,实现安全、持久、可管理的并发。
  • 高吞吐量:针对处理大量消息而设计,具有稳定的处理能力,对要求高的系统至关重要。演员可以批量消费和生成消息以提高效率。
  • 可见性:使用内置遥测快速查找和修复性能瓶颈,实现服务的实时监控和分析。
  • 快速原型设计:在 graphiz DOT 文件中模拟您的想法,然后生成 Rust 服务项目以开始。

查看 cargo-steady-state 项目

    • 您将编写一个带有清晰标签的小型 graphiz Dot 文件
    • 代码生成器将使用该 dot 文件为您的新项目打好基础,使业务逻辑成为您的关注点。
    • 请参阅 cargo-steady-state 的 readme 文件,其中我们提供了一个 LLM 提示,以便您与 AI 讨论您的新产品,然后让它为您生成 dot 文件。

愿景和路线图

steady_state 不仅仅是框架;它是构建 Rust 服务开发未来的愿景。我们的路线图包括

  • 应用程序包装器:适用于 CLI、systemd、ROS2 或 Kubernetes Operator 的解决方案
  • 跨机器遥测:扩展分布式系统部署的可观察性,对于全面性能管理至关重要。
  • 云服务预构建演员:简化与流行的云平台和服务的集成。

对测试的承诺

steady_state 中,我们优先考虑严格的测试以确保服务稳定性

  • 单个演员测试:为每个演员编写测试以保持清晰性和易于维护。
  • 全面的模拟演员:使您能够进行全面的端到端和负载测试,以彻底验证服务架构,而无需外部服务。
  • 外部测试:计划中,但我们希望集成流行的 Testcontainers

steady_state 结合 Rust 的安全保证、广泛的代码覆盖和监督系统,为服务交付提供无与伦比的安全性。

依赖关系

~18–34MB
~518K SLoC