node/deps/uv/README.md

89 lines
2.1 KiB
Markdown
Raw Normal View History

# libuv [![Build Status](https://secure.travis-ci.org/joyent/libuv.png)](http://travis-ci.org/joyent/libuv)
2011-09-24 02:07:57 +08:00
libuv is a new platform layer for Node. Its purpose is to abstract IOCP on
2011-12-02 05:50:09 +08:00
Windows and libev on Unix systems. We intend to eventually contain all
2011-09-24 02:07:57 +08:00
platform differences in this library.
2011-05-13 10:16:40 +08:00
http://nodejs.org/
2011-09-24 02:07:57 +08:00
## Features
2011-09-24 11:23:41 +08:00
* Non-blocking TCP sockets
2011-09-24 02:07:57 +08:00
2011-09-24 11:23:41 +08:00
* Non-blocking named pipes
2011-09-24 02:07:57 +08:00
* UDP
2011-09-24 11:23:41 +08:00
* Timers
2011-09-24 02:07:57 +08:00
* Child process spawning
2011-09-24 11:23:41 +08:00
* Asynchronous DNS via c-ares or `uv_getaddrinfo`.
2011-09-24 02:07:57 +08:00
2011-09-24 11:23:41 +08:00
* Asynchronous file system APIs `uv_fs_*`
2011-09-24 02:07:57 +08:00
2011-09-24 11:23:41 +08:00
* High resolution time `uv_hrtime`
2011-09-24 02:07:57 +08:00
2011-09-24 11:23:41 +08:00
* Current executable path look up `uv_exepath`
2011-09-24 02:07:57 +08:00
2011-09-24 11:23:41 +08:00
* Thread pool scheduling `uv_queue_work`
2011-09-24 02:07:57 +08:00
2011-10-01 02:22:38 +08:00
* ANSI escape code controlled TTY `uv_tty_t`
2011-10-10 22:56:02 +08:00
* File system events Currently supports inotify, `ReadDirectoryChangesW`
and kqueue. Event ports in the near future.
2011-09-24 11:23:41 +08:00
`uv_fs_event_t`
2011-09-24 02:07:57 +08:00
2011-10-10 22:56:02 +08:00
* IPC and socket sharing between processes `uv_write2`
2011-09-24 02:07:57 +08:00
## Documentation
See `include/uv.h`.
## Build Instructions
2011-05-13 10:16:40 +08:00
2011-08-09 05:14:47 +08:00
For GCC (including MinGW) there are two methods building: via normal
makefiles or via GYP. GYP is a meta-build system which can generate MSVS,
Makefile, and XCode backends. It is best used for integration into other
projects. The old (more stable) system is using Makefiles.
2011-08-06 18:38:11 +08:00
2011-08-09 05:14:47 +08:00
To build via Makefile simply execute:
2011-08-06 18:38:11 +08:00
make
2011-08-30 06:23:13 +08:00
To build with Visual Studio run the vcbuilds.bat file which will
checkout the GYP code into build/gyp and generate the uv.sln and
2011-08-09 05:14:47 +08:00
related files.
2011-08-06 18:38:11 +08:00
2011-09-24 11:23:41 +08:00
Windows users can also build from cmd-line using msbuild. This is
2011-08-30 06:23:13 +08:00
done by running vcbuild.bat from Visual Studio command prompt.
2011-08-09 05:14:47 +08:00
To have GYP generate build script for another system you will need to
checkout GYP into the project tree manually:
2011-08-06 18:38:11 +08:00
2011-08-09 05:14:47 +08:00
svn co http://gyp.googlecode.com/svn/trunk build/gyp
2011-08-23 08:34:43 +08:00
Unix users run
2011-08-09 05:14:47 +08:00
2011-08-23 08:34:43 +08:00
./gyp_uv -f make
make
2011-08-09 05:14:47 +08:00
2011-08-23 08:34:43 +08:00
Macintosh users run
2011-08-09 05:14:47 +08:00
2011-08-23 08:34:43 +08:00
./gyp_uv -f xcode
xcodebuild -project uv.xcodeproj -configuration Release -target All
2011-08-06 18:38:11 +08:00
2011-09-24 02:07:57 +08:00
## Supported Platforms
2011-05-13 10:16:40 +08:00
2011-08-09 05:14:47 +08:00
Microsoft Windows operating systems since Windows XP SP2. It can be built
with either Visual Studio or MinGW.
Linux 2.6 using the GCC toolchain.
2011-05-13 10:16:40 +08:00
2011-08-09 05:14:47 +08:00
MacOS using the GCC or XCode toolchain.
2011-05-13 10:16:40 +08:00
Solaris 121 and later using GCC toolchain.