Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Riker is a framework for building modern, concurrent and resilient systems using the Rust language. Riker aims to make working with state and behavior in concurrent systems as easy and scalable as possible. The Actor Model has been chosen to realize this because of the familiar and inherent simplicity it provides while also providing strong guarantees that are easy to reason about. The Actor Model also provides a firm foundation for resilient systems through the use of the actor hierarchy and actor supervision.
- An Actor based execution runtime
- Actor supervision to isolate and recover from failures
- A modular system
- A Dispatcher backed by
- Publish/Subscribe messaging via actor channels
- Message scheduling
- Out-of-the-box, configurable, non-blocking logging
- Persistent actors using Event Sourcing
- Command Query Responsiblily Separation (CQRS)
- Run futures alongside actors
 = "0.1.8" = "0.1.8"
extern crate riker; extern crate riker_default; extern crate log; use Duration; use *; use DefaultModel; ; // implement the Actor trait // provide factory and props methods // start the system and create an actor
Riker's core functionality is provided by modules defined as part of a 'model'. Every application defines a
Model to describe the modules to be used. Everything from database storage, to logging, to the underlying dispatcher that executes actors is a module.
Model riker-default makes it easy to get started. You can also use this default model as part of a custom model.
Official crates that provide additional functionality:
- riker-cqrs: Command Query Responsibility Separation support
- riker-testkit: Tools to make testing easier
- riker-patterns: Common actor patterns, including
Roadmap & Currently in Development
The next major theme on the project roadmap is clustering and location transparency:
- Remote actors
- Support for TCP and UDP
- Clustering (using vector clocks)
- Distributed data (CRDTs)
We believe there is no greater need than now for a full-featured actor model implementation that scales to hundreds or thousands of microservices and that equally can run exceptionally well on resource limited hardware to drive drones, IoT and robotics. The Rust language makes this possible.
Rust empowers developers with control over memory management, requiring no garbage collection and runtime overhead, while also providing modern semantics and expressive syntax such as the trait system. The result is a language that can solve problems equally for Web and IoT.
Riker adds to this by providing a famililar actor model API which in turn makes concurrent, resilent systems programming easy.
Riker is currently built using the latest Rust Nightly. Starting from between Riker
0.3 we expect to build against Rust Stable with support for specific minimum versions.
Riker is looking for contributors - join the project! You don't need to be an expert in actors, concurrent systems, or even Rust. Great ideas come from everyone.
There are multiple ways to contribute:
- Ask questions. Adding to the conversation is a great way to contribute. Find us on Gitter.
- Documentation. Our aim is to make concurrent, resilient systems programming available to everyone and that starts with great Documentation.
- Additions to Riker code base. Whether small or big, your Pull Request could make a difference.
- Patterns, data storage and other supporting crates. We are happy to link to and provide full credit to external projects that provide support for databases in Riker's event storage model or implementations of common actor patterns.