libuv
當前版本 | 1.49.2[1](2024年10月18日,32天前) |
---|---|
源代碼庫 | |
編程語言 | 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).