libuv
OS |
API |
---|---|
Linux |
epoll |
BSD family |
kqueue |
Windows |
IOCP |
libevent
libevent 和 libev 和 libuv 三者中歷史最悠久的 library, 於 2002 年開始開發, 對各個 event 提供 callback function 的機制來進行處理。
使用者:
Google Chrome
Memcached
Transmission
ntpd
Tor
libev
libuv
libuv 原先是為了設計給 Node.js 用的一個 C library, 一開始是 libev 的 wrapper, 因為當時 libev 不支援 Windows 的 IOCP (Windows 上類似 epoll、kqueue 的機制), 後來拿掉 libev 這個 dependency 成為獨立的跨平台 asychronous I/O library, 後續增加一些抽象化跟功能, 例如 threads、threadpools、inter-thread communication。
使用者:
Node.js
Julia
Luvit (Asynchronous I/O for Lua)
pyuv
Neovim
…
Reference
- unix: remove libev
libuv 去除 libev 的一些原因
- How does libuv compare to Boost/ASIO?
提供了非常詳細的比較