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