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).