proxima-runtime 0.1.0

Runtime trait abstraction for proxima: per-core spawn, cross-core dispatch, background pool
Documentation

proxima-runtime

The runtime trait surface for proxima: per-core spawn, cross-core dispatch, and a background pool, defined independent of any concrete executor.

Add it with cargo add proxima-runtime.

What it provides

  • Runtime: spawn !Send futures on the current core (spawn_on_current_core), Send futures on a designated core (spawn_on_core, which returns SpawnError::InboxFull or SpawnError::Disconnected rather than blocking), and a Send factory that builds a ?Send future on a target core.
  • BackgroundPool: cross-thread CPU-bound work, awaited from a per-core caller through a Send handle.
  • SpawnRequest, CoreId, SpawnError: the cross-core dispatch message and its identifiers.
  • primitives: the RuntimeFactory sibling trait and the *Like shapes (MutexLike, NotifyLike, JoinSetLike, LocalMutexLike, LocalNotifyLike, JoinError) so code can be generic over the runtime that supplies its lock.
  • ext: a fluent spawn surface over Runtime.

The trait and value types live here, outside the proxima umbrella, so that prime can be a separate crate without depending on it.

What it composes

It depends on proxima-core (for ProximaError). Implementations of Runtime:

  • prime (the proxima-prime package): PrimeRuntime, a from-scratch per-core runtime.
  • proxima_runtime::tokio::TokioPerCoreRuntime (feature tokio): N tokio current-thread runtimes pinned one per CPU core.
  • RayonBackgroundPool (feature rayon): a BackgroundPool over rayon's work-stealing pool.

proxima-primitives depends on this crate (optionally, under its alloc feature) for the runtime types.

Features and tiers

Default feature: std.

feature effect
alloc the Runtime, BackgroundPool, ext and primitives surface (no_std + alloc)
std (default) implies alloc; adds RuntimeFactory / LocalRuntimeFactory
tokio TokioPerCoreRuntime and the Tokio* primitive adapters; implies std
io-uring on Linux, swaps epoll for io_uring under the tokio backend; implies tokio
rayon RayonBackgroundPool; implies std
concurrency adaptive per-core concurrency control (a controller with preset strategies, tunable from TOML/env); implies std
runtime-prime-full empty; kept so dependents' feature forwarding still resolves

With no features the crate is no_std and exposes only the error and identifier types.

License

MIT OR Apache-2.0.

Repository: https://github.com/brianbruggeman/proxima