3 个版本
0.0.19 | 2024 年 7 月 19 日 |
---|---|
0.0.18 | 2024 年 7 月 8 日 |
0.0.17 | 2024 年 6 月 17 日 |
0.0.15 |
|
0.0.1 |
|
#171 in 并发
每月 386 次下载
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