Jump to content

Libuv: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Rfl (talk | contribs)
update latest stable version - see https://github.com/libuv/libuv/releases/tag/v1.9.1
Adding local short description: "Software library for asynchronous I/O", overriding Wikidata description "multi-platform software library with a focus on asynchronous I/O"
 
(38 intermediate revisions by 30 users not shown)
Line 1: Line 1:
{{Short description|Software library for asynchronous I/O}}
{{Use dmy dates|date=August 2017}}
{{lowercase|title=libevent}}
{{lowercase|title=libevent}}
{{Infobox software
{{Infobox software
| name = libuv
| name = libuv
| logo = libuv.svg
| logo = libuv.svg
| screenshot =
| screenshot =
| caption =
| caption =
| collapsible =
| collapsible =
| author =
| author =
| developer =
| developer =
| released =
| released =
| latest release version = 1.9.1
| latest release version = {{wikidata|property|reference|edit|P348}}
| latest release date = {{release date and age|2016|05|17}}
| latest release date = {{release date and age |{{wikidata|qualifier|P348|P577}}}}
| latest preview version =
| latest preview version =
| latest preview date =
| latest preview date =
| programming language = [[C (programming language)|C]]
| status =
| operating system = [[Cross-platform]]
| programming language = [[C (programming language)|C]]
| platform = [[Linux]], [[Android (operating system)|Android]], [[Windows]] and [[OS X]]/[[Darwin (operating system)|Darwin]],<ref name="libuvgithub">{{cite web |url=https://github.com/libuv/libuv |title=The libuv project page and source code| website=GitHub |accessdate=30 June 2016}}</ref> [[FreeBSD]], [[OpenBSD]]
| operating system = [[Cross-platform]]
| size =
| platform = [[FreeBSD]], [[OpenBSD]], [[Linux]], [[Android (operating system)|Android]], [[Windows]] and [[OS X]]/[[Darwin (operating system)|Darwin]]<ref name="libuvgithub">{{cite web |url=https://github.com/libuv/libuv |title=The libuv project page and source code| website=GitHub |accessdate=30 June 2016}}</ref>
| language =
| size =
| genre = I/O abstraction [[Library (computing)|library]]
| language =
| license = [[MIT License|MIT]]
| genre = I/O Abstraction [[Library (computing)|Library]]
| license = [[MIT License|MIT]]
| website = {{URL|http://libuv.org}}
| frequently updated =
}}
}}


'''libuv''' is a multi-platform [[C (programming language)|C]] library that provides support for [[asynchronous I/O]] based on [[event loop]]s. It supports [[Epoll|<code>epoll(4)</code>]], [[Kqueue|<code>kqueue(2)</code>]], Windows [[IOCP]], and [[Solaris (operating system)|Solaris]] [[event port]]s. It is primarily designed for use in [[Node.js]] but it is also used by other software projects.<ref name="projectsthatuselibuv">{{cite web |title=Projects that use libuv |url=https://github.com/libuv/libuv/wiki/Projects-that-use-libuv |website=libuv GitHub project page| accessdate=30 June 2016}}</ref> It was originally an abstraction around [[libev]] or Microsoft [[IOCP]], as [[libev]] doesn't support Windows. In node-v0.9.0's version of libuv, the dependency on libev was removed.<ref>[http://nikhilm.github.io/uvbook/introduction.html#background an introduction to libuv]</ref>
'''libuv''' is a multi-platform [[C (programming language)|C]] library that provides support for [[asynchronous I/O]] based on [[event loop]]s. It supports [[Epoll|<code>epoll(4)</code>]], [[Kqueue|<code>kqueue(2)</code>]], Windows [[IOCP]], [[Solaris (operating system)|Solaris]] [[event port]]s and [[io_uring|Linux io_uring]]. It is primarily designed for use in [[Node.js]] but it is also used by other software projects.<ref name="projectsthatuselibuv">{{cite web |title=Projects that use libuv |url=https://github.com/libuv/libuv/wiki/Projects-that-use-libuv |website=libuv GitHub project page| accessdate=30 June 2016}}</ref> It was originally an abstraction around {{wdrl|Q63064998}} 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.<ref>[https://nikhilm.github.io/uvbook/introduction.html#background An introduction to libuv]</ref>


== Features ==
==Features==
From:<ref name="libuvgithub" />
From:<ref name="libuvgithub" />
* Full-featured event loop backed by epoll, kqueue, IOCP, event ports.
* Full-featured event loop backed by epoll, kqueue, IOCP, event ports
* Asynchronous [[Transmission Control Protocol|TCP]] and [[User Datagram Protocol|UDP]] sockets
* Asynchronous [[Transmission Control Protocol|TCP]] and [[User Datagram Protocol|UDP]] sockets
* Asynchronous [[Domain Name System|DNS]] resolution
* Asynchronous [[Domain Name System|DNS]] resolution
Line 42: Line 41:
* Threading and synchronization primitives
* Threading and synchronization primitives


== See also ==
== 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.<ref>{{Cite web |title=What does UV stand for in libuv? |url=https://groups.google.com/g/libuv/c/jGpqKLXAVBE |access-date=2022-06-07 |website=groups.google.com}}</ref>
{{Portal|Free software}}

==See also==
{{Portal|Free and open-source software}}
* [[libevent]]
* [[libevent]]
* [[libev]]
* [[Reactor pattern]]


==References==
==References==
Line 51: Line 53:


==External links==
==External links==
* {{official website}}
* [https://github.com/libuv/libuv libuv web page]
* [http://nikhilm.github.io/uvbook/ An Introduction to libuv]
* {{GitHub|libuv/libuv}}
* [https://nikhilm.github.io/uvbook/ An Introduction to libuv]
* [http://docs.libuv.org/ libuv API documentation]
* [http://docs.libuv.org/ libuv API documentation]
* [http://docs.libuv.org/en/latest/design.html libuv design overview]
* [http://docs.libuv.org/en/latest/design.html libuv design overview]



[[Category:C (programming language) libraries]]
[[Category:Events (computing)]]
[[Category:Events (computing)]]
[[Category:Free computer libraries]]
[[Category:Free computer libraries]]
[[Category:C libraries]]
[[Category:Node.js]]

Latest revision as of 00:22, 27 July 2024

libuv
Stable release
1.49.2[1] Edit this on Wikidata / 18 October 2024; 37 days ago (18 October 2024)
Repository
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  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

[edit]

From:[2]

Origin of the name

[edit]

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

[edit]

References

[edit]
  1. ^ "Release v1.49.2: 2024.10.18, Version 1.49.2 (Stable) · libuv/libuv". Retrieved 20 October 2024.
  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.
[edit]