Welcome to the libuv API documentation¶
Overview¶
libuv is a multi-platform support library with a focus on asynchronous I/O. It was primarily developed for use by Node.js, but it’s also used by Luvit, Julia, pyuv, and others.
Note
In case you find errors in this documentation you can help by sending pull requests!
Features¶
- Full-featured event loop backed by epoll, kqueue, IOCP, 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
Installation¶
Installation instructions can be found on the README.
Upgrading¶
Migration guides for different libuv versions, starting with 1.0.
Documentation¶
- Design overview
- Error handling
- Version-checking macros and functions
uv_loop_t
— Event loopuv_handle_t
— Base handleuv_req_t
— Base requestuv_timer_t
— Timer handleuv_prepare_t
— Prepare handleuv_check_t
— Check handleuv_idle_t
— Idle handleuv_async_t
— Async handleuv_poll_t
— Poll handleuv_signal_t
— Signal handleuv_process_t
— Process handleuv_stream_t
— Stream handleuv_tcp_t
— TCP handleuv_pipe_t
— Pipe handleuv_tty_t
— TTY handleuv_udp_t
— UDP handleuv_fs_event_t
— FS Event handleuv_fs_poll_t
— FS Poll handle- Filesystem operations
- Thread pool work scheduling
- DNS utility functions
- Shared library handling
- Threading and synchronization utilities
- Miscellaneous utilities