| Crates.io | bastion-executor |
| lib.rs | bastion-executor |
| version | 0.4.2 |
| created_at | 2019-11-07 14:05:56.282674+00 |
| updated_at | 2022-01-07 20:29:05.847939+00 |
| description | Cache affine NUMA-aware executor for Rust |
| homepage | https://github.com/bastion-rs/bastion |
| repository | https://github.com/bastion-rs/bastion |
| max_upload_size | |
| id | 179025 |
| size | 161,730 |
| Latest Release |
|
| License |
|
| Build Status |
|
| Downloads |
|
| Discord |
|
Bastion Executor is NUMA-aware SMP based Fault-tolerant Executor
Bastion Executor is a highly-available, fault-tolerant, async communication oriented executor. Bastion's main idea is supplying a fully async runtime with fault-tolerance to work on heavy loads.
Main differences between other executors are:
NOTE: Bastion Executor is independent of it's framework implementation. It uses lightproc to encapsulate and provide fault-tolerance to your future based workloads. You can use your futures with lightproc to run your workloads on Bastion Executor without the need to have framework.
use bastion_executor::prelude::*;
use lightproc::proc_stack::ProcStack;
fn main() {
let pid = 1;
let stack = ProcStack::default()
.with_pid(pid)
.with_after_panic(move || println!("after panic {}", pid.clone()));
let handle = spawn(
async {
panic!("test");
},
stack,
);
let pid = 2;
let stack = ProcStack::default().with_pid(pid);
run(
async {
handle.await;
},
stack.clone(),
);
}