8 releases (breaking)
Uses new Rust 2024
| 0.7.0 | Dec 18, 2025 |
|---|---|
| 0.6.0 | Dec 18, 2025 |
| 0.5.1 | Dec 17, 2025 |
| 0.3.0 | Dec 6, 2025 |
| 0.0.8 | Dec 1, 2025 |
#1753 in Asynchronous
Used in sansio-bootstrap
15KB
108 lines
sansio-executor
Tokio-based local executor for the sansio ecosystem.
Features
- Tokio LocalSet: Built on tokio's LocalSet for single-threaded task execution
- CPU Pinning: Pin executor threads to specific CPU cores
- Thread Naming: Name executor threads for debugging
- Task Management: Spawn, detach, and cancel tasks
Quick Start
[dependencies]
sansio-executor = "0.0.7"
use sansio_executor::LocalExecutorBuilder;
fn main() {
LocalExecutorBuilder::default()
.run(async {
println!("Running on tokio!");
});
}
Spawning Tasks
use sansio_executor::{LocalExecutorBuilder, spawn_local};
fn main() {
LocalExecutorBuilder::default().run(async {
let task1 = spawn_local(async {
println!("Task 1");
42
});
let task2 = spawn_local(async {
println!("Task 2");
100
});
let result1 = task1.await.unwrap();
let result2 = task2.await.unwrap();
println!("Results: {}, {}", result1, result2);
});
}
Detaching Tasks
use sansio_executor::{LocalExecutorBuilder, spawn_local};
fn main() {
LocalExecutorBuilder::default().run(async {
let task = spawn_local(async {
println!("Running in background");
});
// Detach - task continues running even though we don't await it
task.detach();
});
}
Documentation
For detailed documentation, see:
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Dependencies
~1.9–3MB
~48K SLoC