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
·
tokio-rs avatar

tokio-rs/mio

0
View on GitHub↗
7,024 stars·842 forks·Rust·MIT·11 views

Mio

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 buffers to reduce the overhead of system calls.

The project covers a broad range of low-level networking and I/O capabilities, including resource registration, token-based event dispatching, and the ability to wake polling threads. It supports communication via pipes and provides a unified abstraction for cross-platform non-blocking I/O.

Features

  • Event-Driven I/O - Provides an event-driven framework for monitoring multiple network sockets and file descriptors via native OS polling.
  • OS Event Polling - Provides a portable wrapper for operating system native polling systems like epoll, kqueue, and IOCP.
  • Vectored I/O - Provides a vectored I/O implementation for scatter-gather reads and writes to minimize system call overhead.
  • Socket Networking - Provides low-level non-blocking primitives for managing TCP, UDP, and Unix domain sockets.
  • Non-Blocking Socket I/O - Provides non-blocking socket interfaces to handle incoming network traffic without stalling the execution thread.
  • Asynchronous I/O Libraries - Provides a low-level abstraction for non-blocking system I/O operations via event loops.
  • Cross-Platform Asynchronous I/O Abstractions - Provides a unified interface for non-blocking network and file operations that works consistently across different operating systems.
  • I/O Polling - Implements mechanisms for monitoring multiple file descriptors to detect readiness for read or write operations.
  • Vectored I/O Engines - Enables scatter-gather reads and writes across multiple buffers to improve transfer efficiency and reduce system call overhead.
  • OS Polling Wrappers - Acts as a portable wrapper for native OS polling systems including epoll, kqueue, and IOCP.
  • Async I/O Runtimes - Provides the foundational event loop and polling mechanism required to build custom asynchronous execution environments in Rust.
  • Event Dispatchers - Implements an event dispatcher that routes OS readiness notifications to user-defined tokens for efficient event handling.
  • Event-Driven Architectures - Implements a reactive system for monitoring network and file descriptor events using native OS polling.
  • Resource Registration - Implements a registry that tracks file descriptors and associates them with unique tokens for asynchronous event identification.
  • Cross-Platform Abstraction Layers - Implements a unified abstraction layer for managing network and pipe events across Unix and Windows systems.
  • Vectored I/O - Implements vectored I/O for scatter-gather reads and writes to minimize system call overhead and data movement.
  • Resource Readiness Registration - Tracks readiness for read or write operations on specific sources and triggers events when data becomes available.
  • Event-Queue Polling - Allows applications to poll for registered input or output sources and retrieve readiness notifications.
  • UDP Socket Managers - Provides tools for configuring and managing non-blocking UDP socket communication and peer address retrieval.
  • TCP Connection Tuning - Allows fine-tuning of TCP socket parameters such as keepalive and linger options.
  • Unix Domain Socket Support - Provides support for non-blocking Unix domain sockets, including datagrams, streams, and abstract namespaces.
  • Vectored I/O - Implements scatter-gather reads and writes across multiple buffers to reduce system call overhead.
  • Polling Thread Wakers - Implements the ability to signal a thread blocked on a poll operation to wake up and resume processing.
  • Waker-Based Thread Signaling - Allows other threads to signal a blocked polling thread to wake up and resume processing immediately.
  • Asynchronous Programming - Lightweight IO library with minimal OS overhead.
  • Developer Tools - Lightweight I/O library with minimal OS abstraction overhead.
  • Network Libraries - Low-level non-blocking I/O library for Rust.

Star history

Star history chart for tokio-rs/mioStar history chart for tokio-rs/mio

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 Mio

Similar open-source projects, ranked by how many features they share with Mio.
  • 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
  • cloudwego/netpollcloudwego avatar

    cloudwego/netpoll

    4,583View on GitHub↗

    Netpoll is an event-driven network framework and non-blocking I/O library designed to manage concurrent TCP and Unix domain socket connections. It utilizes a non-blocking event loop to monitor file descriptors and trigger callbacks for read and write events, serving as a high-performance socket manager and TCP network poller. The framework optimizes throughput across CPU cores by distributing incoming network connections across multiple pollers. It implements zero-copy networking primitives, using linked buffers and specialized memory management to read and write data while minimizing memory

    Go
    View on GitHub↗4,583
  • riba2534/tcp-ip-networknoteriba2534 avatar

    riba2534/TCP-IP-NetworkNote

    2,505View on GitHub↗

    TCP-IP-NetworkNote is a comprehensive technical reference and guide for implementing network communication using TCP and UDP sockets in C and C++. It provides a detailed manual for using the POSIX socket API and covers the implementation of network protocols, synchronous and asynchronous I/O patterns, and concurrent programming models. The project is distinguished by its focus on cross-platform networking, offering a detailed comparison of socket implementation details and adaptation utilities between Linux and Windows Winsock environments. It specifically addresses the differences in header

    C
    View on GitHub↗2,505
  • smol-rs/smolsmol-rs avatar

    smol-rs/smol

    4,979View on GitHub↗

    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

    Rustasyncconcurrencyfutures
    View on GitHub↗4,979
See all 30 alternatives to Mio→

Frequently asked questions

What does tokio-rs/mio do?

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.

What are the main features of tokio-rs/mio?

The main features of tokio-rs/mio are: Event-Driven I/O, OS Event Polling, Vectored I/O, Socket Networking, Non-Blocking Socket I/O, Asynchronous I/O Libraries, Cross-Platform Asynchronous I/O Abstractions, I/O Polling.

What are some open-source alternatives to tokio-rs/mio?

Open-source alternatives to tokio-rs/mio include: chriskohlhoff/asio — Asio is a C++ library for performing network and low-level I/O operations using a consistent asynchronous model that… cloudwego/netpoll — Netpoll is an event-driven network framework and non-blocking I/O library designed to manage concurrent TCP and Unix… riba2534/tcp-ip-networknote — TCP-IP-NetworkNote is a comprehensive technical reference and guide for implementing network communication using TCP… smol-rs/smol — Smol is a lightweight Rust asynchronous runtime and task executor. It provides a suite of foundational tools for… python-trio/trio — Trio is an asynchronous I/O runtime and concurrency library for Python. It provides a system for executing… ithewei/libhv — libhv is a high-performance C/C++ network library and event-driven I/O framework used to build TCP, UDP, SSL, HTTP,…