一、什么是libuv
libuv是一个网络io扩展库。
二、它能干什么
libuv 是一个高性能事件驱动的程序库,封装了 Windows 和 Unix 平台一些底层特性,为开发者提供了统一的 API。
特性:
-
非阻塞 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
已受支持的平台:
-
Microsoft Windows 操作系统,如 Windows XP SP2。使用 Visual Studio 或 MinGW 构建
-
Linux 2.6 使用 GCC 工具链
-
MacOS 使用 GCC 或 XCode 工具链
-
Solaris 121 或之后版本,使用 GCC 工具链
libuv 采用了 异步 (asynchronous), 事件驱动 (event-driven)的编程风格, 其主要任务是为开人员提供了一套事件循环和基于I/O(或其他活动)通知的回调函数, libuv 提供了一套核心的工具集, 例如定时器, 非阻塞网络编程的支持, 异步访问文件系统, 子进程以及其他功能.
五、获取libuv
git clone
https://github.com/libuv/libuv.git
六、编译与安装
cd libuv
./autogen.sh
./configure
make
make install
参考资料:
An Introduction to libuv:
http://www.nowx.org/uvbook/introduction.html
libuv中文:http://www.oschina.net/p/libuv