awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
smol-rs avatar

smol-rs/smol

0
View on GitHub↗
4,979 stars·190 forks·Rust·Apache-2.0·36 views

Smol

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.

Features

  • Async I/O Runtimes - Acts as a lightweight async runtime providing the core event loop and task scheduler for Rust applications.
  • Blocking Task Offloaders - Provides mechanisms to offload synchronous CPU-intensive tasks to dedicated thread pools.
  • Waker-Based Schedulers - Implements a task executor that manages future progression using the standard library waker mechanism.
  • Non-Blocking Socket I/O - Ships non-blocking socket I/O for handling multiple TCP and UDP streams asynchronously.
  • Asynchronous I/O Libraries - Provides a comprehensive library of non-blocking interfaces for system I/O operations.
  • Non-Blocking I/O Interfaces - Implements non-blocking I/O interfaces that monitor multiple network sockets and files via OS event notifications.
  • Asynchronous File Access - Provides non-blocking utilities for reading and writing files on the local filesystem.
  • Asynchronous Runtime Adapters - Provides abstraction layers that enable asynchronous futures to operate across different runtime implementations.
  • Concurrency Primitives - Implements essential synchronization constructs such as asynchronous mutexes, semaphores, and channels.
  • Asynchronous Runtime Compatibility - Offers a compatibility layer for detecting and utilizing event loops to execute tasks across different runtimes.
  • Async-Sync Compatibility Layers - Provides architectural mechanisms to ensure interoperability between different asynchronous runtime ecosystems.
  • Asynchronous File I/O - Provides non-blocking interfaces for reading and writing files to prevent runtime stalls.
  • Asynchronous Schedulers - Implements an asynchronous scheduler that maps computational tasks to thread pools for non-blocking execution.
  • Asynchronous Task Executors - Ships a task executor that schedules and runs asynchronous futures on global or local thread pools.
  • Event-Driven I/O - Implements event-driven I/O to handle TCP, UDP, and Unix connections asynchronously.
  • Process Management - Provides interfaces for interacting with system processes while maintaining application responsiveness.
  • External Process Management - Enables spawning and controlling external system processes using non-blocking communication.
  • Blocking I/O Offloading - Includes a utility to offload synchronous I/O operations to a dedicated thread pool to prevent runtime stalls.
  • Trait Adaptation Layers - A utility for converting asynchronous input and output traits between different ecosystems to ensure compatibility across various libraries.
  • Blocking Operation Handlers - Offloads synchronous I/O and CPU-intensive computations to worker threads to maintain runtime responsiveness.
  • Thread Pools - Manages a collection of worker threads to handle synchronous I/O and CPU-heavy operations.
  • Timer Schedulers - Includes interfaces for scheduling asynchronous tasks using delayed timeouts and recurring intervals.
  • Asynchronous Synchronization Primitives - Provides a suite of asynchronous mutexes and semaphores to coordinate access to shared state.
  • Scoped Task Synchronization - Implements mechanisms to coordinate the completion of parallel operations and resource access.
  • Message Passing Channels - Provides synchronized communication primitives for exchanging data between concurrent asynchronous tasks.

Star history

Star history chart for smol-rs/smolStar history chart for smol-rs/smol

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Smol

Similar open-source projects, ranked by how many features they share with Smol.
  • tokio-rs/miotokio-rs avatar

    tokio-rs/mio

    7,024View on GitHub↗

    Mio is a low-level I/O library for Rust that provides an event-driven framework for monitoring multiple network sockets and file descriptors. It acts as a portable wrapper for operating system native polling systems, including epoll, kqueue, and IOCP, allowing applications to trigger events when resources are ready for reading or writing without blocking the execution thread. The library provides a non-blocking socket interface for managing TCP, UDP, and Unix sockets. It distinguishes itself through a vectored I/O implementation, enabling scatter-gather reads and writes across multiple buffer

    Rustasynchronousnetworkingnon-blocking
    View on GitHub↗7,024
  • chriskohlhoff/asiochriskohlhoff avatar

    chriskohlhoff/asio

    5,896View on GitHub↗

    Asio is a C++ library for performing network and low-level I/O operations using a consistent asynchronous model that avoids blocking program execution. It provides a portable, cross-platform interface for network socket communication across different operating systems, and manages multiple asynchronous operations without requiring explicit thread management or locking. The library implements a proactor-based asynchronous model where operations post completion handlers to a queue for later execution, and wraps operating system I/O multiplexing mechanisms like epoll, kqueue, IOCP, and select in

    C++
    View on GitHub↗5,896
  • reactphp/reactphpreactphp avatar

    reactphp/reactphp

    9,091View on GitHub↗

    ReactPHP is an asynchronous runtime and event-driven I/O framework for PHP. It provides an environment for executing concurrent tasks through a central event loop implementation and reactor pattern, allowing applications to handle multiple operations without pausing the main execution thread. The project includes a specialized asynchronous socket library for TCP, UDP, and TLS communication, alongside a non-blocking HTTP server and client for streaming web requests and responses. Its capability surface covers asynchronous control flow via promises and fibers, non-blocking network connectivity

    PHP
    View on GitHub↗9,091
  • yjhjstz/deep-into-nodeyjhjstz avatar

    yjhjstz/deep-into-node

    4,392View on GitHub↗

    This project is a technical study and analysis guide focused on the internal architecture of Node.js. It provides an in-depth examination of the runtime, focusing on how the engine manages memory handles, executes asynchronous operations, and implements core module logic. The guide specifically analyzes the integration of native C++ classes and functions into JavaScript and documents the behavior of the libuv event loop. It includes detailed references for optimizing performance by identifying V8 compiler bailouts and profiling execution to improve resource efficiency. The material covers a

    libuvnodejsv8
    View on GitHub↗4,392
See all 30 alternatives to Smol→

Frequently asked questions

What does smol-rs/smol do?

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.

What are the main features of smol-rs/smol?

The main features of smol-rs/smol are: Async I/O Runtimes, Blocking Task Offloaders, Waker-Based Schedulers, Non-Blocking Socket I/O, Asynchronous I/O Libraries, Non-Blocking I/O Interfaces, Asynchronous File Access, Asynchronous Runtime Adapters.

What are some open-source alternatives to smol-rs/smol?

Open-source alternatives to smol-rs/smol include: tokio-rs/mio — Mio is a low-level I/O library for Rust that provides an event-driven framework for monitoring multiple network… chriskohlhoff/asio — Asio is a C++ library for performing network and low-level I/O operations using a consistent asynchronous model that… reactphp/reactphp — ReactPHP is an asynchronous runtime and event-driven I/O framework for PHP. It provides an environment for executing… yjhjstz/deep-into-node — This project is a technical study and analysis guide focused on the internal architecture of Node.js. It provides an… gevent/gevent — Gevent is a Python coroutine concurrency library and asynchronous task manager designed for high-concurrency I/O… python-trio/trio — Trio is an asynchronous I/O runtime and concurrency library for Python. It provides a system for executing…