https://github.com/duckstax/actor-zeta
Library that provides an actor style message-passing programming model (in C++).
https://github.com/duckstax/actor-zeta
actor-model c-plus-plus-11 c-plus-plus-14 c-plus-plus-17 clion jetbrains message-passing
Last synced: 6 months ago
JSON representation
Library that provides an actor style message-passing programming model (in C++).
- Host: GitHub
- URL: https://github.com/duckstax/actor-zeta
- Owner: duckstax
- License: bsd-3-clause
- Created: 2015-12-12T16:59:57.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-04-09T14:30:12.000Z (6 months ago)
- Last Synced: 2025-04-09T15:39:09.486Z (6 months ago)
- Topics: actor-model, c-plus-plus-11, c-plus-plus-14, c-plus-plus-17, clion, jetbrains, message-passing
- Language: C++
- Size: 2.1 MB
- Stars: 65
- Watchers: 5
- Forks: 9
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
| compiler | Master | Develop |
|:---:|:---:|:---:|
| gcc 4.8.5 - 11 | |[](https://github.com/cyberduckninja/actor-zeta/actions/workflows/ubuntu_gcc.yaml) |
|clang 3.9 - 10 | |[](https://github.com/cyberduckninja/actor-zeta/actions/workflows/ubuntu_clang.yaml)|actor-zeta
========================actor-zeta is an open source C++11/14/17 virtual actor model implementation featuring lightweight & fast and more.
## Example
```C++
#include
using actor_zeta::basic_async_actor;
class key_value_storage_t final : public basic_async_actor {
public:
explicit key_value_storage_t(dummy_supervisor &ref) : basic_async_actor(ref, "storage") {add_handler(
"init",
&key_value_storage_t::init
);add_handler(
"search",
&key_value_storage_t::search
);add_handler(
"add",
&key_value_storage_t::add
);}
~key_value_storage_t() override = default;
void init() {
/// ...
}private:
void search(std::string &key) {
/// ...
}void add(const std::string &key, const std::string &value) {
/// ...
}
};```
### Header-Only
To use as header-only; that is, to eliminate the requirement to
link a program to a static or dynamic library, simply
place the following line in exactly one new or existing source
file in your project.
```
#include
```## For Users
Add the corresponding remote to your conan:
```bash
conan remote add duckstax http://conan.duckstax.com
```### Basic setup
```bash
$ conan install actor-zeta/1.0.0a8@duckstax/stable
```
### Project setupIf you handle multiple dependencies in your project is better to add a *conanfile.txt*
[requires]
actor-zeta/1.0.0a8@duckstax/stable[generators]
cmake## Dependencies
* CMake >= 3.0