For asynchronous concurrency models, the strongest matches are swoole/swoole-src (Swoole is a high-performance, coroutine-based concurrency framework for PHP), netty/netty (Netty is a high-performance, asynchronous network framework that provides) and tokio-rs/tokio (Tokio is a comprehensive asynchronous runtime for Rust that). reactor/reactor-core and rust-lang/futures-rs round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore the best asynchronous concurrency models for your stack. Compare top-rated libraries by activity and features to find the best fit for your project.
Swoole is a coroutine-based concurrency library and IO framework for PHP. It provides a system for building high-performance network servers and applications by bringing asynchronous, event-driven, and coroutine-based concurrency to the PHP runtime. The project distinguishes itself by implementing user-space coroutine scheduling and non-blocking IO interception, which transforms standard blocking network and file operations into asynchronous actions. It further enables high-speed data exchange across multiple PHP processes through shared memory management and specialized data structures. The
Swoole is a high-performance, coroutine-based concurrency framework for PHP that provides non-blocking I/O, task scheduling, and worker pooling to enable asynchronous application development.
Netty is an asynchronous network framework designed for building scalable protocol servers and clients. It utilizes an event-driven reactor pattern and a non-blocking input/output model to decouple connection handling from application logic, allowing for the development of responsive network services that manage high volumes of concurrent connections. The framework distinguishes itself through a modular pipeline-based processing chain that enables the implementation of custom binary or text-based protocols. It provides a pluggable transport abstraction that allows developers to switch between
Netty is a high-performance, asynchronous network framework that provides the core concurrency primitives you need, including non-blocking I/O, event-driven task scheduling, and future-based APIs for building scalable applications.
Tokio is an asynchronous runtime for the Rust programming language, designed to manage and execute concurrent tasks efficiently. It provides a multi-threaded execution environment that schedules lightweight tasks across available processor cores, utilizing a work-stealing scheduler to balance computational load. By employing a poll-based execution model and waker-based notifications, the runtime drives asynchronous operations forward without requiring active polling loops, ensuring efficient resource utilization. The project distinguishes itself through a comprehensive suite of tools for high
Tokio is a comprehensive asynchronous runtime for Rust that provides the full suite of required features, including non-blocking I/O, a work-stealing task scheduler, and robust support for futures and backpressure.
Reactor Core is a reactive programming toolkit and non-blocking foundation for composing asynchronous data pipelines on the JVM. It serves as an asynchronous stream processing framework and a backpressure management system, allowing developers to transform, filter, and combine sequences of events while regulating data flow between producers and consumers to prevent resource exhaustion. The library differentiates itself through a sophisticated concurrency scheduling system and demand-based flow control. It decouples signal processing from specific threads using a scheduler registry and provide
Reactor Core is a foundational reactive programming library for the JVM that provides non-blocking I/O, sophisticated task scheduling, and robust backpressure management, making it a flagship implementation of asynchronous concurrency patterns.
Zero-cost asynchronous programming in Rust
This library provides the foundational abstractions for asynchronous programming in Rust, including futures, streams, and task execution, which are essential for building high-performance, non-blocking applications.
DotNetty is an asynchronous network framework and event-driven networking library for .NET. It is a port of the Netty architecture designed for building high-performance protocol servers and clients. The framework enables the development of network applications that handle concurrent connections and high-throughput data streaming without blocking execution threads. It supports the implementation of custom network protocols through defined encoding and decoding rules. The library utilizes a pipeline-based processing model and non-blocking I/O to manage network traffic. Its architecture incorp
DotNetty provides a high-performance, event-driven networking framework that implements non-blocking I/O, task scheduling, and future-based asynchronous patterns, making it a specialized tool for building concurrent network applications.
Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data structures, synchronization primitives, and asynchronous execution patterns. It implements core concurrency abstractions including an actor model framework where isolated actors communicate through asynchronous message passing, a future and promise system for composing non-blocking operations, and thread pool executors that manage reusable worker threads for concurrent task execution. The library distinguishes itself through a broad set of coordination mechanisms that go beyond basic th
This library provides a comprehensive suite of concurrency primitives for Ruby, including thread pools, futures, promises, and non-blocking execution patterns that directly address the requirements for high-performance asynchronous development.
RxJava is a reactive stream processing framework and JVM reactive extensions library. It serves as an asynchronous dataflow orchestrator used to compose event-based programs by transforming, combining, and consuming real-time data flows on the Java Virtual Machine. The project distinguishes itself through integrated backpressure flow control, which manages the emission rate between producers and consumers to prevent memory exhaustion. It further provides mechanisms for concurrent thread management and parallel data processing to offload blocking operations and maintain application responsiven
RxJava is a robust reactive programming framework that provides the core asynchronous concurrency features requested, including non-blocking data streams, thread scheduling, and built-in backpressure management for the JVM.
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
Smol is a lightweight, high-performance asynchronous runtime for Rust that provides all the requested features, including non-blocking I/O, task scheduling, and thread pooling for blocking operations.
coobjc is an Objective-C coroutine library that provides await methods and generators to simplify asynchronous programming in Objective-C and Swift. It enables the implementation of non-blocking workflows to eliminate nested callbacks and thread blocking. The toolkit includes a non-blocking Foundation wrapper to convert synchronous Foundation and UIKit APIs into suspendable operations. It provides a lazy sequence generator for producing values on demand via yield, as well as a channel-based communication tool for exchanging data between concurrent tasks using buffered and unbuffered channels.
This library provides coroutine-based asynchronous programming for Objective-C and Swift, offering non-blocking I/O, task scheduling, and channel-based communication to manage concurrent workflows.
libuv is a cross-platform asynchronous I/O library that provides an abstraction layer for event-driven networking, filesystem operations, and system signals. It utilizes a non-blocking event loop to coordinate asynchronous tasks and I/O events across different operating systems. The project features a unified interface for managing TCP, UDP, and DNS resolution, alongside an inter-process communication layer for sharing sockets via named pipes and Unix domain sockets. To prevent blocking the main execution loop, it includes a multi-platform thread pool for offloading computationally expensive
This library provides the core non-blocking event loop, thread pooling, and asynchronous I/O primitives required to build high-performance concurrent applications, serving as the foundational runtime layer for many modern asynchronous frameworks.
Coost is a concurrent network framework and coroutine scheduler designed for building high-performance TCP, HTTP, and RPC services. It provides a set of tools for handling non-blocking IPv4 and IPv6 communication, integrating SSL encryption and a lightweight execution engine that manages concurrent tasks using shared stacks. The project features a specialized JSON RPC implementation for exchanging structured data over encrypted connections and a high-performance logging system. This logging infrastructure supports topic-based routing, frequency filtering, and automated stack trace capture for
Coost is a C++ concurrent network framework that provides a coroutine scheduler, non-blocking I/O, and task management, making it a suitable tool for building high-performance asynchronous applications.
Piscina is a Node.js worker thread pool that runs CPU-intensive JavaScript functions across multiple threads for parallel execution. It manages a dynamic pool of worker threads with configurable size, handling task submission, cancellation, and lifecycle management through a promise-based interface. The pool supports AbortController-based task cancellation, enabling clean termination of submitted or running tasks without disrupting other work. It enforces per-worker memory limits through V8 resource caps and applies backpressure with a configurable maximum queue size that emits a drain event
Piscina is a robust worker thread pool for Node.js that provides task scheduling, promise-based interfaces, and backpressure management, making it a specialized tool for handling CPU-bound asynchronous concurrency.
async-std is a Rust asynchronous runtime and non-blocking I/O library. It serves as an asynchronous standard library, providing a set of alternatives to the core Rust library for managing concurrent tasks, networking, and file system access. The project implements a standard-library-mirrored API, offering asynchronous versions of existing synchronous types to maintain a familiar interface. This approach allows for asynchronous Rust development using an interface that reflects the ergonomics of the language's standard library. The runtime includes a task executor for scheduling and executing
This is a comprehensive asynchronous runtime for Rust that provides non-blocking I/O, task scheduling, and future support, making it a primary framework for building high-performance concurrent applications.
Twisted is an event-driven networking engine for Python that provides a framework for building asynchronous network applications. At its core, it uses a reactor-based event loop to drive all input and output, dispatching callbacks in a single thread without blocking. The library implements a deferred promise chain for composing asynchronous logic, along with a protocol and factory pattern that separates connection state management from protocol handling, enabling reusable handlers for different network protocols. The framework supports multiple event loops across platforms, including select,
Twisted is a mature, event-driven networking framework that provides a robust reactor-based event loop, deferred promise chains, and comprehensive support for non-blocking I/O and concurrent task management.
This project is a C++ TCP server framework and educational socket programming guide. It provides a high-performance network library focused on event-driven architecture, implementing a reactor pattern to handle thousands of simultaneous client connections. The framework is distinguished by its multi-threaded event loop, which utilizes a main-sub reactor coordination model to distribute network events across a worker thread pool. It includes an abstraction layer for non-blocking socket I/O and event multiplexing via the epoll system call, decoupling network transport from application business
This project provides a high-performance, event-driven C++ framework that implements non-blocking I/O, a reactor pattern, and a worker thread pool for concurrent task execution, making it a suitable tool for building asynchronous network applications.
Sylar is a high-performance C++ asynchronous server framework and event-driven network library. It functions as a coroutine scheduler and HTTP server implementation designed to build network services using non-blocking I/O. The project distinguishes itself through a system call interceptor that hooks blocking socket and sleep APIs, transforming synchronous operations into non-blocking asynchronous events. It employs a user-space threading system to distribute lightweight tasks across a worker thread pool to maximize CPU utilization. The framework covers a broad range of networking and system
Sylar is a C++ framework that provides a coroutine-based scheduler, non-blocking I/O, and thread pooling, making it a direct implementation of asynchronous concurrency patterns for high-performance network services.
threads.js is a JavaScript worker thread library and asynchronous task orchestrator designed to offload CPU-intensive tasks to background threads. It functions as a cross-platform worker pool and a TypeScript worker runner that automatically transpiles and executes TypeScript files within separate threads. The project distinguishes itself by providing a unified worker API that allows for cross-platform execution across different JavaScript environments. It includes a specialized worker data serialization tool to pass complex class instances and binary data between threads, and supports inlini
This library provides a robust worker pool and task orchestration system for JavaScript, enabling non-blocking execution of CPU-intensive tasks through thread pooling and promise-based communication.
Vapor is a comprehensive server-side web framework designed for building scalable, high-performance applications and APIs in Swift. It provides a non-blocking, event-loop-based runtime that manages concurrent task processing, background job queues, and asynchronous request handling. The framework is built around a dependency injection container that manages the lifecycle and resolution of services, configurations, and database connections throughout the request pipeline. The framework distinguishes itself through a protocol-oriented design that emphasizes type safety across all layers of the
Vapor is a full-stack web framework that natively implements non-blocking I/O and asynchronous concurrency patterns using Swift's structured concurrency, making it a robust choice for high-performance application development.
Crystal is a statically typed, compiled programming language designed for high performance and memory safety. It leverages an LLVM-based compiler to translate source code into optimized machine-executable binaries, while its type-inference-based static analysis enforces strict safety rules during the build process. The language distinguishes itself through a fiber-based concurrent runtime that manages lightweight execution units for asynchronous input and output without blocking the main process. It also features a powerful compile-time macro system that allows for the inspection and transfor
Crystal is a programming language with a built-in fiber-based concurrency runtime that natively implements non-blocking I/O, task scheduling, and future-like patterns for high-performance development.
Actix Web is an asynchronous web framework designed for building high-performance network services. It provides a foundation for processing concurrent requests through a non-blocking execution model, utilizing an actor-based concurrency system to manage lightweight processes and message passing. The framework includes a low-level networking layer that handles the parsing and serialization of HTTP traffic according to standard specifications. The framework distinguishes itself through a type-safe routing engine that enforces strict data types at compile time, ensuring that request parameters a
Actix Web is a high-performance web framework built on an asynchronous runtime that provides the non-blocking I/O, task scheduling, and actor-based concurrency patterns required for building scalable network services.
Ray is a distributed computing framework designed to scale Python and Java applications across clusters by abstracting task scheduling and resource management. It functions as a resource-aware execution engine that manages task dependencies, placement, and fault tolerance across networked compute nodes. At its core, the system provides a stateful actor model, allowing developers to define classes that run in dedicated processes to maintain and mutate internal state across remote method calls. The framework distinguishes itself through a robust cross-language interoperability layer, enabling f
Ray provides a distributed execution engine that implements asynchronous task scheduling, non-blocking remote method calls, and stateful actor models, making it a powerful framework for managing high-performance concurrent workloads.
Actix is a Rust actor framework and concurrent programming toolkit designed for building applications that manage state through an asynchronous messaging system. It provides a model where independent actors serve as autonomous units of state and logic, communicating via strongly typed messages sent to unique addresses. The framework distinguishes itself by isolating state within these actors, allowing internal data to be mutated safely during message handling without the use of locks or mutexes. It employs an asynchronous mailbox system to buffer incoming requests and uses supervision strateg
Actix is a robust actor-based concurrency framework that provides non-blocking I/O, task scheduling, and future-based messaging, making it a strong choice for building high-performance, state-isolated applications.
Future is a unified framework for parallel and distributed computing in R that abstracts infrastructure complexity to enable asynchronous task execution. It provides a consistent interface for dispatching intensive computations to local multicore processors or remote clusters, allowing developers to manage background jobs without blocking the main session. The framework distinguishes itself through a strategy-based execution abstraction that decouples task definitions from the underlying compute backend. This allows for the seamless swapping of execution environments while maintaining global
This R package provides a unified framework for asynchronous and parallel processing using futures, offering the core task scheduling and promise-based abstractions required for high-performance computing in the R ecosystem.
Muduo is a C++11 event-driven network library and framework designed for building high-concurrency Linux servers. It provides a toolkit for implementing scalable network services and socket communication using non-blocking I/O and asynchronous event processing. The framework implements a multi-threaded TCP server architecture that distributes connection handling across multiple CPU threads to maximize server throughput. This is achieved through a one-loop-per-thread model and a reactor pattern implementation, which dispatch network events from a central demultiplexer to registered handler fun
Muduo is a high-performance, event-driven C++ networking framework that utilizes non-blocking I/O and a multi-threaded reactor pattern to handle asynchronous concurrency, making it a strong fit for building scalable network services.
EventMachine is a reactor-pattern network framework for Ruby that provides an asynchronous I/O library for performing non-blocking network and file operations. It functions as a network server framework used to build scalable TCP and UDP servers and clients that process multiple simultaneous requests. The framework implements a concurrency model that dispatches network events to registered handlers using a single-threaded event loop. This approach allows for the management of high-concurrency network connections without the overhead of multi-threaded programming. The library covers the devel
EventMachine provides a reactor-pattern framework for Ruby that enables non-blocking I/O and event-driven concurrency, serving as a foundational tool for building high-performance network applications.
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
Netpoll is a high-performance, event-driven network framework that provides the non-blocking I/O and connection management primitives necessary for building asynchronous, concurrent applications in Go.
Workerman is an event-driven asynchronous socket framework for PHP. It provides the core components necessary to build high-concurrency network servers, including an asynchronous TCP framework, a coroutine library for task management, and dedicated implementations for HTTP and WebSocket servers. The project enables the development of specialized network services using custom frame-based communication protocols. It supports both inbound concurrent server implementation and asynchronous outbound connectivity to remote services. The framework covers a broad range of network programming capabili
Workerman is an event-driven asynchronous framework for PHP that provides non-blocking I/O, task scheduling, and coroutine-based concurrency, making it a robust choice for building high-performance network services.
libwebsockets is an event-driven networking framework written in C. It provides a suite of tools for implementing HTTP servers and clients, WebSocket bidirectional communication, MQTT client messaging, and TLS-enabled socket encryption. The project distinguishes itself through a non-blocking event-loop architecture capable of scaling to high connection volumes by distributing network sessions across multiple service threads. It uses a protocol-based callback system and a pluggable event loop integration that allows the networking core to synchronize with external system event libraries. The
This is a high-performance, event-driven networking framework that provides the non-blocking I/O and multi-threaded event loop architecture required for building asynchronous, concurrent applications.
EasySwoole is a high-performance asynchronous PHP framework designed for building event-driven networks and persistent memory applications. It functions as a toolkit for developing distributed microservices and asynchronous servers capable of handling concurrent HTTP, TCP, UDP, and WebSocket connections. The framework distinguishes itself through a persistent memory process execution mode that eliminates the overhead of repetitive file loading and invocation during request handling. It provides built-in support for distributed systems via remote procedure call implementations and service disc
EasySwoole is a high-performance PHP framework built on the Swoole extension that provides non-blocking I/O, coroutine-based task scheduling, and persistent memory execution to handle concurrent network requests.
Functional Concurrency Primitives
This library provides functional concurrency primitives for Swift, offering the core task-based abstractions and non-blocking patterns required for high-performance asynchronous development.
Modern concurrency tools for Crystal
This library provides concurrency primitives and task management tools for the Crystal language, offering the non-blocking I/O and task scheduling capabilities required for high-performance asynchronous development.
| المستودع | النجوم | اللغة | الترخيص | آخر تحديث |
|---|---|---|---|---|
| swoole/swoole-src | 18.9K | C++ | Apache-2.0 | |
| netty/netty | 35K | Java | Apache-2.0 | |
| tokio-rs/tokio | 32.3K | Rust | MIT | |
| reactor/reactor-core | 5.2K | Java | Apache-2.0 | |
| rust-lang/futures-rs | 5.9K | Rust | Apache-2.0 | |
| azure/dotnetty | 4.2K | C# | NOASSERTION | |
| ruby-concurrency/concurrent-ruby | 5.8K | Ruby | NOASSERTION | |
| reactivex/rxjava | 48.2K | Java | Apache-2.0 | |
| smol-rs/smol | 5K | Rust | Apache-2.0 | |
| alibaba/coobjc | 4K | Objective-C | Apache-2.0 |