Copyright luoxiangyong.
E-mail: solo_lxy@126.com
本项目是我再学习libuv过程中参照官方文档里面的例子整理的,可以使用cmake简单编译,主要用于 个人学习。
libuv是 Node 的新跨平台抽象层,用于抽象 Windows 的 IOCP 及 Unix 的libev。作者打算在这个库的包含所有平台的差异性。
代码在:https://github.com/libuv/libuv
文档在:http://docs.libuv.org/en/v1.x/
特性:
- 非阻塞 TCP 套接字
- 非阻塞命名管道
- UDP
- 定时器
- 子进程生成
- 通过 uv_getaddrinfo 实现异步 DNS
- 异步文件系统 API:uv_fs_* 高分辨率时间:uv_hrtime
- 正在运行程序路径查找:uv_exepath
- 线程池调度:uv_queue_work
- TTY控制的ANSI转义代码: uv_tty_t
- 文件系统事件现在支持 inotify, ReadDirectoryChangesW 和 kqueue
- 进程间的 IPC 与套接字共享:uv_write2
已受支持的平台:
- Microsoft Windows 操作系统,如 Windows XP SP2。使用 Visual Studio 或 MinGW 构建
- Linux 使用 GCC 工具链
- MacOS 使用 GCC 或 XCode 工具链
- Solaris 121 或之后版本,使用 GCC 工具链
本项目是学习libuv的源码及相关资料的,libuv的源码和编译方式直接使用nodejs v8.x版本。
- 到 https://github.com/nodejs/node下载nodejs-8.x 的代码
- 安装Microsoft Visual Studio 2017(社区版还是免费的)
- cd /path/to/nodejs-8 && vcbuild.bat vs2017 release
编译成功的文件在/path/to/nodejs-8/[Relase| Debug]文件夹下。
pacman -S mingw-w64-x86_64-libuv # 安装libuv开发库
地址:https://www.cmake.org v3.9
- git clone https://github.com/sololxy/libuv-study.github
- cd /path/to/libuv-study && cmake
- enjoying ;)