3 libuv is a multi-platform support library with a focus on asynchronous I/O. It
4 was primarily developed for use by [Node.js](http://nodejs.org), but it's also
5 used by Mozilla's [Rust language](http://www.rust-lang.org/),
6 [Luvit](http://luvit.io/), [Julia](http://julialang.org/),
7 [pyuv](https://crate.io/packages/pyuv/), and [others](https://github.com/joyent/libuv/wiki/Projects-that-use-libuv).
11 * Full-featured event loop backed by epoll, kqueue, IOCP, event ports.
13 * Asynchronous TCP and UDP sockets
15 * Asynchronous DNS resolution
17 * Asynchronous file and file system operations
21 * ANSI escape code controlled TTY
23 * IPC with socket sharing, using Unix domain sockets or named pipes (Windows)
31 * High resolution clock
33 * Threading and synchronization primitives
38 * [Mailing list](http://groups.google.com/group/libuv)
42 * [include/uv.h](https://github.com/joyent/libuv/blob/master/include/uv.h)
43 — API documentation in the form of detailed header comments.
44 * [An Introduction to libuv](http://nikhilm.github.com/uvbook/)
45 — An overview of libuv with tutorials.
46 * [LXJS 2012 talk](http://www.youtube.com/watch?v=nGn60vDSxQ4)
47 — High-level introductory talk about libuv.
48 * [Tests and benchmarks](https://github.com/joyent/libuv/tree/master/test)
49 — API specification and usage examples.
50 * [libuv-dox](https://github.com/thlorenz/libuv-dox)
51 — Documenting types and methods of libuv, mostly by reading uv.h.
55 For GCC there are two methods building: via autotools or via [GYP][].
56 GYP is a meta-build system which can generate MSVS, Makefile, and XCode
57 backends. It is best used for integration into other projects.
59 To build with autotools:
69 First, Python 2.6 or 2.7 must be installed as it is required by [GYP][].
71 Also, the directory for the preferred Python executable must be specified
72 by the `PYTHON` or `Path` environment variables.
74 To build with Visual Studio, launch a git shell (e.g. Cmd or PowerShell)
75 and run vcbuild.bat which will checkout the GYP code into build/gyp and
76 generate uv.sln as well as related project files.
78 To have GYP generate build script for another system, checkout GYP into the
79 project tree manually:
82 $ git clone https://git.chromium.org/external/gyp.git build/gyp
95 $ ./gyp_uv.py -f xcode
96 $ xcodebuild -project uv.xcodeproj -configuration Release -target All
102 $ source ./android-configure NDK_PATH gyp
105 Note for UNIX users: compile your project with `-D_LARGEFILE_SOURCE` and
106 `-D_FILE_OFFSET_BITS=64`. GYP builds take care of that automatically.
112 $ ./gyp_uv.py -f make
114 $ ./out/Debug/run-tests
116 ## Supported Platforms
118 Microsoft Windows operating systems since Windows XP SP2. It can be built
119 with either Visual Studio or MinGW. Consider using
120 [Visual Studio Express 2010][] or later if you do not have a full Visual
123 Linux using the GCC toolchain.
125 OS X using the GCC or XCode toolchain.
127 Solaris 121 and later using GCC toolchain.
131 See the [guidelines for contributing][].
133 [node.js]: http://nodejs.org/
134 [GYP]: http://code.google.com/p/gyp/
135 [Visual Studio Express 2010]: http://www.microsoft.com/visualstudio/eng/products/visual-studio-2010-express
136 [guidelines for contributing]: https://github.com/joyent/libuv/blob/master/CONTRIBUTING.md