libuv是一个跨平台的异步IO库实现,刚开始是为Node.js而开发,Node.js完全构建于libuv之上。
- Windows
- Unix
- Android
- OS X 注:ios需要自己移植。
- autotools
- Visual Studio
- Ninja
- GYP
- Xcode
- Full-featured event loop backed by epoll, kqueue, IOCP, event ports.
- Asynchronous TCP and UDP sockets
- Asynchronous DNS resolution
- Asynchronous file and file system operations
- File system events
- ANSI escape code controlled TTY
- IPC with socket sharing, using Unix domain sockets or named pipes (Windows)
- Child processes
- Thread pool
- Signal handling
- High resolution clock
- Threading and synchronization primitives
-
hello 启动一个loop,其他什么事情都没有做。
-
idle-basic 一个使用空转handle的例子。
-
timer 定时器实现,实现了简单的计时器功能,100毫秒之后开始触发每隔1000毫秒重复一次。
-
threadpool 使用内部的线程池,即工作队列。
-
uvcat 基于libuv实现的cat工具。
-
uvtee 基于libuv实现的tee工具(把标准输入中的内容输出到文件)。
-
onChange 监控文件变化。
-
tcp-echo-server 基于libuv的echo server实现。
-
udp-dhcp 一个从DCHP服务器获取ip的例子。
-
dns 异步解析DNS。
-
interfaces 打印出所有可以获取的网卡信息。
-
thread-create 线程的创建和停止。
-
locks 简单读写锁使用。
-
queue-work 工作队列使用的例子。
-
queue-cancel 取消未开始的工作队列。
-
progress 演示了一个下载管理程序向用户展示各个下载线程的进度。
-
spawn 创建子进程。
-
detach 创建守护进程。
-
signal 向进程发生信号。
-
proc-streams 子进程继承父进程文件描述符。
-
uvstop 演示如何停止loop。
-
ref-timer timer的使用例子。
-
idle-compute 使用uv_idle_t的例子。
-
uvwget 基于libuv实现的wget程序。