Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/uazu/stakker

A lightweight low-level single-threaded actor runtime
https://github.com/uazu/stakker

actor actor-framework actor-model actor-system async event-driven low-level rust safe

Last synced: about 1 month ago
JSON representation

A lightweight low-level single-threaded actor runtime

Awesome Lists containing this project

README

        

# A lightweight low-level single-threaded actor runtime

[![license:MIT/Apache-2.0][1]](https://github.com/uazu/stakker)
[![github:uazu/stakker][2]](https://github.com/uazu/stakker)
[![crates.io:stakker][3]](https://crates.io/crates/stakker)
[![docs.rs:stakker][4]](https://docs.rs/stakker)
[![uazu.github.io:stakker][5]](https://uazu.github.io/stakker/)

[1]: https://img.shields.io/badge/license-MIT%2FApache--2.0-blue
[2]: https://img.shields.io/badge/github-uazu%2Fstakker-brightgreen
[3]: https://img.shields.io/badge/crates.io-stakker-red
[4]: https://img.shields.io/badge/docs.rs-stakker-purple
[5]: https://img.shields.io/badge/uazu.github.io-stakker-yellow

**Stakker** is designed to be layered on top of whatever event loop
the user prefers to use. It aims to take maximum advantage of Rust's
compile-time checks and optimisations.

### Documentation

See the [crate documentation](http://docs.rs/stakker) and the [Stakker
Guide and Design Notes](https://uazu.github.io/stakker/)

# License

This project is licensed under either the Apache License version 2 or
the MIT license, at your option. (See
[LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT)).

### Contribution

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.

### Maintenance approach

You're very welcome to try to break this code! I intend to conform to
Rust safety conventions, including on internal interfaces. Any
unsound behaviour that can be shown to exist will be treated as a
serious bug, and I will endeavour to find a solution as soon as
reasonably possible.

I reserve the right to (metaphorically) go off to a mountain-top cave
to consider issues in depth, to make the right decision without being
rushed.

Most of the design decisions in this software have had a lot of
consideration, with many different approaches tried and discarded
before arriving at the current solution. The current implementations
have been rewritten and refactored and minimised to get to the current
state. So I'd ask that any requests for changes to how things are
done be accompanied by some reasonably in-depth justification, such as
example use-cases that require the change, or some other discussion of
why that change would be a good one. I prefer to keep the code tight,
so I might need to refactor PRs, or reimplement them a different way.