A cross-platform event loop library for D providing lightweight asynchronous objects and concurrency facilities.
libasync is a cross-platform event loop library written entirely in D that provides asynchronous objects and concurrency facilities for lightweight asynchronous tasks. It solves the problem of building high-performance, concurrent applications with natural D integration and support for TCP/UDP connections, file operations, timers, and more.
D developers building networked applications, concurrent systems, or services requiring asynchronous I/O operations across multiple platforms.
Developers choose libasync for its lightweight design, cross-platform compatibility, seamless integration with D projects, and comprehensive asynchronous primitives that compile statically without external dependencies.
Cross-platform event loop library of asynchronous objects
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Embeds naturally into D projects, compiling statically with DMD or LDC compilers, reducing dependency bloat and ensuring seamless integration.
Tested on Mac OS X, Linux, and Windows with both DMD and LDC, supporting a wide range of desktop operating systems for consistent deployment.
Designed for extremely lightweight tasks with an event loop architecture, minimizing overhead for high-performance concurrent applications.
Includes TCP/UDP connections, file operations, timers, and signals, covering essential asynchronous needs in networked and file-based systems.
Lacks embedded HTTP or TLS handlers, requiring reliance on vibe.d or other libraries for web functionality, as admitted in the README limitations.
The library is entirely nothrow, forcing developers to build error handling from scratch, which adds complexity and potential for bugs.
Imposes a hard limit of one event loop per thread, restricting flexibility for certain concurrent designs and increasing resource usage in multi-threaded setups.