sansio-executor

Crates.iosansio-executor
lib.rssansio-executor
version0.7.0
created_at2025-12-01 22:13:07.65127+00
updated_at2025-12-18 21:18:38.545187+00
descriptionsansio executor
homepagehttps://webrtc.rs
repositoryhttps://github.com/webrtc-rs/sansio
max_upload_size
id1960742
size32,836
Rusty Rain (rainliu)

documentation

https://docs.rs/sansio-executor

README

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:

at your option.

Commit count: 0

cargo fmt