libuv
Appearance
Stable release | 1.29.1
/ May 21, 2019[1] |
---|---|
Repository | |
Written in | C |
Operating system | Cross-platform |
Platform | Linux, Android, Windows and OS X/Darwin,[2] FreeBSD, OpenBSD |
Type | I/O abstraction library |
License | MIT |
Website | libuv |
libuv (Unicorn Velociraptor Library[3]) is a multi-platform C library that provides support for asynchronous I/O based on event loops. It supports epoll(4)
, kqueue(2)
, Windows IOCP, and Solaris event ports. It is primarily designed for use in Node.js but it is also used by other software projects.[4] It was originally an abstraction around libev or Microsoft IOCP, as libev supports only select(2)
and doesn't support poll(2)
and IOCP on Windows. In node-v0.9.0's version of libuv, the dependency on libev was removed.[5]
Features
From:[2]
- 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
See also
References
- ^ "The libuv github releases". GitHub. Retrieved 15 April 2019.
- ^ a b "The libuv project page and source code". GitHub. Retrieved 30 June 2016.
- ^ "Welcome to the libuv documentation — libuv documentation". docs.libuv.org. Retrieved 24 July 2017.
- ^ "Projects that use libuv". libuv GitHub project page. Retrieved 30 June 2016.
- ^ An introduction to libuv