comparison third_party/libuv/docs/src/guide/introduction.rst @ 160:948de3f54cea

[ThirdParty] Added libuv
author June Park <parkjune1995@gmail.com>
date Wed, 14 Jan 2026 19:39:52 -0800
parents
children
comparison
equal deleted inserted replaced
159:05cf9467a1c3 160:948de3f54cea
1 Introduction
2 ============
3
4 This 'book' is a small set of tutorials about using libuv_ as
5 a high performance evented I/O library which offers the same API on Windows and Unix.
6
7 It is meant to cover the main areas of libuv, but is not a comprehensive
8 reference discussing every function and data structure. The `official libuv
9 documentation`_ may be consulted for full details.
10
11 .. _official libuv documentation: https://docs.libuv.org/en/v1.x/
12
13 This book is still a work in progress, so sections may be incomplete, but
14 I hope you will enjoy it as it grows.
15
16 Who this book is for
17 --------------------
18
19 If you are reading this book, you are either:
20
21 1) a systems programmer, creating low-level programs such as daemons or network
22 services and clients. You have found that the event loop approach is well
23 suited for your application and decided to use libuv.
24
25 2) a node.js module writer, who wants to wrap platform APIs
26 written in C or C++ with a set of (a)synchronous APIs that are exposed to
27 JavaScript. You will use libuv purely in the context of node.js. For
28 this you will require some other resources as the book does not cover parts
29 specific to v8/node.js.
30
31 This book assumes that you are comfortable with the C programming language.
32
33 Background
34 ----------
35
36 The node.js_ project began in 2009 as a JavaScript environment decoupled
37 from the browser. Using Google's V8_ and Marc Lehmann's libev_, node.js
38 combined a model of I/O -- evented -- with a language that was well suited to
39 the style of programming; due to the way it had been shaped by browsers. As
40 node.js grew in popularity, it was important to make it work on Windows, but
41 libev ran only on Unix. The Windows equivalent of kernel event notification
42 mechanisms like kqueue or (e)poll is IOCP. libuv was an abstraction around libev
43 or IOCP depending on the platform, providing users an API based on libev.
44 In the node-v0.9.0 version of libuv `libev was removed`_.
45
46 Since then libuv has continued to mature and become a high quality standalone
47 library for system programming. Users outside of node.js include Mozilla's
48 Rust_ programming language, and a variety_ of language bindings.
49
50 This book and the code is based on libuv version `v1.42.0`_.
51
52 Code
53 ----
54
55 All the example code and the source of the book is included as part of
56 the libuv_ project on GitHub.
57 Clone or Download libuv_, then build it::
58
59 sh autogen.sh
60 ./configure
61 make
62
63 There is no need to ``make install``. To build the examples run ``make`` in the
64 ``docs/code/`` directory.
65
66 .. _v1.42.0: https://github.com/libuv/libuv/releases/tag/v1.42.0
67 .. _V8: https://v8.dev
68 .. _libev: http://software.schmorp.de/pkg/libev.html
69 .. _libuv: https://github.com/libuv/libuv
70 .. _node.js: https://www.nodejs.org
71 .. _libev was removed: https://github.com/joyent/libuv/issues/485
72 .. _Rust: https://www.rust-lang.org
73 .. _variety: https://github.com/libuv/libuv/blob/v1.x/LINKS.md