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 is also used by other software projects. It was originally an abstraction around libev or Windows IOCP, as libev does not support IOCP. In node-v0.9.0's version of libuv, the dependency on libev was removed.
Starting with version 1.0.0 libuv follows the semantic versioning scheme. The API change and backwards compatibility rules are those indicated by SemVer. libuv will keep a stable ABI across major releases. libuv is licensed under the MIT license. Check the LICENSE and LICENSE-extra files. Located in the docs/ subdirectory. It uses the Sphinx framework, which makes it possible to build the documentation in multiple formats. The tests and benchmarks also serve as API specification and usage examples. LXJS 2012 talk — High-level introductory talk about libuv. libuv-dox — Documenting types and methods of libuv, mostly by reading uv.h. learnuv — Learn uv for fun and profit, a self guided workshop to libuv. These resources are not handled by libuv maintainers and might be out of date. Please verify it before opening new issues. libuv can be downloaded either from the GitHub repository or from the downloads site. Before verifying the git tags or signature files, importing the relevant keys is necessary. Key IDs are listed in the MAINTAINERS file, but are also available as git blob objects for easier use. Starting with libuv 1.7.0, the tarballs stored in the downloads site are signed and an accompanying signature file sit alongside each. Once both the release tarball and the signature file are downloaded, the file can be verified as follows: For UNIX-like platforms, including macOS, there are two build methods: autotools or [CMake][]. One of: [Visual C++ Build Tools][] [Visual Studio 2015 Update 3][], all editions including the Community edition (remember to select "Common Tools for Visual C++ 2015" feature during installation). [Visual Studio 2017][], any edition (including the Build Tools SKU). Required Components: "MSbuild", "VC++ 2017 v141 toolset" and one of the Windows SDKs (10 or 8.1). Basic Unix tools required for some tests, [Git for Windows][] includes Git Bash and tools which can be included in the global PATH . Make sure that you specify the architecture you wish to build for in the "ARCHS" flag. You can specify more than one by delimiting with a space (e.g. "x86 64 i386"). You can install pre-built binaries for libuv or build it from source using Conan. Use the following command: Some tests are timing sensitive. Relaxing test timeouts may be necessary on slow or overloaded machines: When running the test from within the test driver process ( build/uv run tests a TEST NAME TEST NAME ), tools like gdb and valgrind work normally. AIX support for filesystem events requires the non-default IBM bos.ahafs package to be installed. This package provides the AIX Event Infrastructure that is detected by autoconf . IBM documentation describes the package in more detail. z/OS compilation requires ZOSLIB to be installed. When building with [CMake][], use the flag -DZOSLIB DIR to specify the path to ZOSLIB: z/OS creates System V semaphores and message queues. These persist on the system after the process terminates unless the event loop is closed. [CMake]: [node.js]: [guidelines for contributing]: [libuv banner]: [Visual C++ Build Tools]: [Visual Studio 2015 Update 3]: [Visual Studio 2017]: [Git for Windows]:
~1 min read
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 is also used by other software projects. It was originally an abstraction around libev or Windows IOCP, as libev does not support IOCP. In node-v0.9.0's version of libuv, the dependency on libev was removed.
==Features== From: Full-featured event loop backed by epoll, kqueue, IOCP, or 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
Excerpt from the source-code README · 9,971 chars · not written by Vinony
via Wikidata · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).