libuv
当前版本 | 1.49.2[1](2024年10月18日,2天前) |
---|---|
源代码库 | |
编程语言 | C |
操作系统 | 跨平台 |
平台 | Linux、Android、Windows和OS X/Darwin[2],FreeBSD,OpenBSD |
类型 | I/O抽象库 |
许可协议 | MIT |
网站 | libuv |
libuv(Unicorn Velociraptor—独角伶盗龙[3])库是多平台C库,提供对基于事件循环的异步I/O的支持。它支持epoll(4)
、kqueue(2)
、Windows的IOCP和Solaris的事件端口。它主要设计用于Node.js,但也可用于其他软件项目,例如Lua的Luvit[4]、Julia和Python的uvloop[5]。它最初是libev或Microsoft IOCP上的抽象,libev只支持Unix系统而不支持Windows上的IOCP,在node-v0.9.0的libuv版本中去除了对libev的依赖[6]。
特征
下述特征取自代码仓库介绍[2]:
- 全特征事件循环以epoll、kqueue、IOCP、事件端口为后端
- 异步TCP和UDP套接字
- 异步DNS解析
- 异步文件和文件系统操作
- 文件系统事件
- ANSI转义序列控制的TTY
- IPC经由套接字共享,使用Unix域套接字或命名管道(Windows)
- 子进程
- 线程池
- 信号处理
- 高清晰度时钟
- 线程和同步原语(primitive)
参见
引用
- ^ Release v1.49.2: 2024.10.18, Version 1.49.2 (Stable) · libuv/libuv. [2024年10月20日] (英语).
- ^ 2.0 2.1 The libuv project page and source code. GitHub. [30 June 2016]. (原始内容存档于2021-01-19).
- ^ Welcome to the libuv documentation — libuv documentation. docs.libuv.org. [2017-07-24]. (原始内容存档于2020-11-26) (英语).
- ^ Luvit - Asynchronous I/O for Lua. [2023-03-25]. (原始内容存档于2023-05-17).
- ^ uvloop is a fast, drop-in replacement of the built-in asyncio event loop. [2023-03-25]. (原始内容存档于2023-05-25).
- ^ An introduction to libuv. [2019-05-28]. (原始内容存档于2018-03-12).