mytheclipse
Resource-aware execution primitives for Rust: async I/O, heavy compute, and background queue management, sized automatically from the host's logical core count and exposed through a single, lazily-initialized engine context.
Resource Sizing
Given $N$ logical cores (via num_cpus::get()):
| Subsystem | Sizing Formula | Default on 8 cores | Backing Primitive |
|---|---|---|---|
| Async I/O | $N$ | 8 | Ambient tokio::spawn + tracing span |
| Compute | $\max(1, N - 1)$ | 7 | Sized rayon::ThreadPool + catch_unwind |
| Background Queue | $\max(2, \lfloor N / 2 \rfloor)$ | 4 | tokio::sync::Semaphore + tokio::spawn |
Features
io: enablesmytheclipse::spawn_io, instrumented async task spawning.compute: enablesmytheclipse::compute, panic-isolated execution on a sized Rayon pool.bg: enablesmytheclipse::spawn_bg, semaphore-bounded background tasks.full: enables all three subsystems.
Zero features enabled by default (default = []), so you only pull in the dependencies your application actually uses.
Quick Start
Add to your Cargo.toml:
[]
= { = "0.1", = ["full"] }
Use the entry points directly:
async
Running the Example
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.