-
-
Notifications
You must be signed in to change notification settings - Fork 102
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
df9cf97
commit 28ac438
Showing
2 changed files
with
139 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,94 @@ | ||
# Bastion Executor | ||
|
||
SMP enabled NUMA-aware executor for Rust | ||
<table align=left style='float: left; margin: 4px 10px 0px 0px; border: 1px solid #000000;'> | ||
<tr> | ||
<td>Latest Release</td> | ||
<td> | ||
<a href="https://crates.io/crates/bastion"> | ||
<img alt="Crates.io" src="https://img.shields.io/crates/v/bastion-executor.svg?style=popout-square"> | ||
</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td></td> | ||
</tr> | ||
<tr> | ||
<td>License</td> | ||
<td> | ||
<a href="https://github.com/bastion-rs/bastion/blob/master/LICENSE"> | ||
<img alt="Crates.io" src="https://img.shields.io/crates/l/bastion.svg?style=popout-square"> | ||
</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Build Status</td> | ||
<td> | ||
<a href="https://actions-badge.atrox.dev/bastion-rs/bastion/goto"> | ||
<img alt="Build Status" src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbastion-rs%2Fbastion%2Fbadge&style=flat" /> | ||
</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Downloads</td> | ||
<td> | ||
<a href="https://crates.io/crates/bastion-executor"> | ||
<img alt="Crates.io" src="https://img.shields.io/crates/d/bastion-executor.svg?style=popout-square"> | ||
</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Discord</td> | ||
<td> | ||
<a href="https://discord.gg/DqRqtRT"> | ||
<img src="https://img.shields.io/discord/628383521450360842.svg?logo=discord" /> | ||
</a> | ||
</td> | ||
</tr> | ||
</table> | ||
|
||
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: | ||
* Uses SMP based execution scheme to exploit cache affinity on multiple cores and execution is | ||
equally distributed over the system resources, which means utilizing the all system. | ||
* Uses NUMA-aware allocation for scheduler's queues and exploit locality on server workloads. | ||
* Tailored for creating middleware and working with actor model like concurrency and distributed communication. | ||
|
||
**NOTE:** Bastion Executor is independent of it's framework implementation. | ||
It uses [lightproc](https://docs.rs/lightproc) to encapsulate and provide fault-tolerance to your future based workloads. | ||
You can use your futures with [lightproc](https://docs.rs/lightproc) to run your workloads on Bastion Executor without the need to have framework. | ||
|
||
## Example Usage | ||
|
||
```rust | ||
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(), | ||
); | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters