Libuv 是一个专注于异步 I/O 的多平台支持库,主要用于 Node.js。
特性包括:
- 非阻塞 TCP 套接字
- 非阻塞命名管道
- UDP
- 定时器
- 子进程生成
- 通过 uv_getaddrinfo 实现异步 DNS
- 异步文件系统 API:uv_fs_*
- 高分辨率时间:uv_hrtime
- 正在运行程序路径查找:uv_exepath
- 线程池调度:uv_queue_work
- TTY控制的ANSI转义代码: uv_tty_t
- 文件系统事件现在支持 inotify, ReadDirectoryChangesW 和 kqueue。很快会支持事件端口:uv_fs_event_t
- 进程间的 IPC 与套接字共享:uv_write2
1.25.0 版本更新内容如下:
- Revert “win,fs: retry if uv_fs_rename fails” (Ben Noordhuis)
- aix: manually trigger fs event monitoring (Gireesh Punathil)
- unix: rename WRITE_RETRY_ON_ERROR macro (Ben Noordhuis)
- darwin: DRY platform-specific error check (Ben Noordhuis)
- unix: refactor uv__write() (Ben Noordhuis)
- unix: don’t send handle twice on partial write (Ben Noordhuis)
- tty,win: fix Alt+key under WSL (Bartosz Sosnowski)
- build: support running tests in out-of-tree builds (Jameson Nash)
- fsevents: really watch files with fsevents on macos 10.7+ (Jameson Nash)
- thread,mingw64: need intrin.h header for SSE2 MemoryBarrier (Jameson Nash)
- win: fix sizeof-pointer-div warning (cjihrig)
- unix,win: add uv_os_uname() (cjihrig)
- win, tty: fix CreateFileW() return value check (Bartosz Sosnowski)
- unix: enable IPv6 tests on OpenBSD (ptlomholt)
- test: fix test-ipc spawn_helper exit_cb (Santiago Gimeno)
- test: fix test-ipc tests (Santiago Gimeno)
- unix: better handling of unsupported F_FULLFSYNC (Victor Costan)
- win,test: de-flake fs_event_watch_dir_short_path (Refael Ackermann)
- win: fix msvc warning (sid)
- openbsd: switch to libuv’s barrier implementation (ptlomholt)
- unix,stream: fix zero byte writes (Santiago Gimeno)
- ibmi: return EISDIR on read from directory fd (Kevin Adler)
- build: wrap long lines in Makefile.am (cjihrig)
转自 https://www.oschina.net/news/103766/libuv-1-25-0-released