Libuv

libuv
Stable release
1.48.0[1] Edit this on Wikidata / 7 February 2024; 3 months ago (7 February 2024)
Repository
  • github.com/libuv/libuv Edit this at Wikidata
Written inC
Operating systemCross-platform
PlatformLinux, Android, Windows and OS X/Darwin,[2] FreeBSD, OpenBSD
TypeI/O abstraction library
LicenseMIT
Websitelibuv.org Edit this on Wikidata

libuv 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, Solaris event ports and Linux io_uring. It is primarily designed for use in Node.js but it is also used by other software projects.[3] It was originally an abstraction around libev [Wikidata] or Microsoft IOCP, as libev does not support IOCP on Windows. In node-v0.9.0's version of libuv, the dependency on libev was removed.[4]

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

Origin of the name

According to libuv developer Ben Noordhuis, the name libuv originally had no specific meaning, but as people kept asking about it, so they made something up. They came up with Unicorn Velociraptor, which became the logo of the library.[5]

See also

  • Free and open-source software portal

References

  1. ^ "Release v1.48.0: 2024.02.07, Version 1.48.0 (Stable)".
  2. ^ a b "The libuv project page and source code". GitHub. Retrieved 30 June 2016.
  3. ^ "Projects that use libuv". libuv GitHub project page. Retrieved 30 June 2016.
  4. ^ An introduction to libuv
  5. ^ "What does UV stand for in libuv?". groups.google.com. Retrieved 7 June 2022.

External links

  • Official website Edit this at Wikidata
  • libuv on GitHub
  • An Introduction to libuv
  • libuv API documentation
  • libuv design overview