Skip to content
This repository was archived by the owner on May 18, 2022. It is now read-only.

Justin42/microacto-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lightweight asynchronous interface composition.

This project is in a perpetually experimental state. You probably don't want to use this in production.

microacto-rs is a tiny (~6kb source) library designed to help provide consistent, coherent interfaces for highly concurrent applications. It solves a different set of problems than conventional actor frameworks. It requires state to be thread-safe, with non-blocking access where appropriate.

It places minimal requirements on the user while providing scalable, fault-tolerant interfaces. Much of this is thanks to the excellent tokio runtime and Rust's addition of async/await features.

If you are not already using tokio, or you are not working in a primarily asynchronous workspace, then this is probably not what you're looking for. It does not attempt to eliminate any of the boilerplate associated with combining asynchronous and synchronous workflows.

While microacto-rs is suitable for many asynchronous projects, there are a few areas where it can be especially useful:

  • Server + client microservices
  • Lightweight interface composition across arbitrary threading models.
  • Simple asynchronous message handling for more complex systems.

Fork this project! This project is tiny, and easy to understand and modify.


Don't use microacto-rs in your project

Don't add this to your Cargo.toml:

[dependencies.microacto-rs]
git = "https://github.com/Justin42/microacto-rs"
branch = "master"

Commits may frequently break your interface. There is no stable branch. You can pin a revision using the commit hash.
Pinning a revision is required if you want to make any guarantees of stability to consumers of your interface.

[dependencies.microacto-rs]
git = "https://github.com/Justin42/microacto-rs"
rev = "b34n542"

Example

// TODO

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages