2 releases
new 0.0.14 | Apr 15, 2024 |
---|---|
0.0.13 | Apr 9, 2024 |
0.0.11 |
|
0.0.6 |
|
0.0.1 |
|
#391 in Asynchronous
875 downloads per month
Used in cargo-steady-state
3MB
7K
SLoC
steady_state: The Next Frontier in Rust Frameworks for Resilient Services
'steady_state' embarks on an ambitious journey to revolutionize the development of resilient, high-performance services in Rust. With a clear vision of integrating advanced latency management, system observability, and unparalleled fault tolerance, steady_state is designed to set new standards in software reliability and efficiency.
*Please note: these old snapshots may not match the most recent updates. An animated GIF demonstrating real-time telemetry visualization in action. *A snapshots of a more complex example
Why steady_state
?
Named for its commitment to maintaining a consistent, optimal operational state, steady_state
offers:
- Fine-Grained Latency Control: Through customizable batch processing and adjustable channel lengths, empowering developers to meet rigorous SLA requirements.
- Embedded Observability: Built-in telemetry features for real-time performance insights, facilitating targeted optimizations.
- Erlang-Inspired Fault Tolerance: Leveraging an advanced supervision system to ensure service continuity, even in the face of unexpected failures.
- Clean Shutdown Logic: Suitable for IoT, Robotics and many other systems which require well-ordered clean shutdown of actors.
Core Features
steady_state
is crafted to ensure safety, reliability, and performance, focusing on:
- Safety and Concurrency: Harnessing Rust's memory safety features and actor-based supervised threading for secure, durable, manageable concurrency.
- High Throughput: Engineered for handling high message volumes with consistent processing capacity, crucial for demanding systems. Actors can consume and produce messages in batches for greater efficiency.
- Visibility: Find and fix performance bottlenecks quickly with built-in telemetry, enabling real-time monitoring and analysis of your service's operational state.
- Rapid Prototyping: Mock up your ideas in graphiz DOT files, then generate your Rust service project to get started.
see the cargo-steady-state project
-
- You will write a small graphiz Dot file with clear annotations in the labels
-
- The code generator will take that dot and rough in your new project so business logic can be your focus.
-
- See the cargo-steady-state readme where we provide a LLM prompt so you can have a discussion with AI about your new product and then have it build the dot for you.
Vision and Roadmap
steady_state
is more than just a framework; it's a vision for building the future of service development in Rust. Our roadmap includes:
- App Wrappers: Solutions for CLI, systemd, ROS2 or Kubernetes Operators
- Cross-Machine Telemetry: Extending observability across distributed system deployments, essential for comprehensive performance management.
- Prebuilt Actors for Cloud Services: Simplifying the integration with popular cloud platforms and services.
Commitment to Testing
In steady_state
, we prioritize rigorous testing to ensure service stability:
- Individual Actor Tests: Roughing in tests for each actor to maintain clarity and ease of maintenance.
- Comprehensive Mock Actors: Enabling full end-to-end and load testing capabilities for thorough validation of your service architecture without requiring external services.
- External Testing: On the roadmap but we would like to integrate the popular Testcontainers
steady_state
combines Rust's safety guarantees with extensive code coverage and a supervisor system to offer unmatched stability in service delivery.
Dependencies
~19–35MB
~550K SLoC