Smol is a lightweight Rust asynchronous runtime and task executor. It provides a suite of foundational tools for scheduling and executing asynchronous futures, managing background workloads, and handling non-blocking network and file operations.
The project includes a compatibility layer for adapting asynchronous types and execution contexts, enabling futures to run across different runtime ecosystems. It also features a mechanism to offload synchronous I/O and CPU-intensive operations to dedicated worker thread pools to prevent runtime stalls.
Its capabilities cover non-blocking network I/O for TCP, UDP, and Unix connections, as well as asynchronous filesystem operations and system process management. For coordinating shared state, it provides a suite of concurrency primitives including asynchronous mutexes, semaphores, and channels. Additional functionality includes timed event scheduling for delayed or recurring tasks.