Libuv

libuv (Unicorn Velociraptor Library[3]) — багато-платформова C-бібліотека, що забезпечує підтримку асинхронний ввід/вивід на основі цикла події. Вона підтримує epoll(4), kqueue(2), Windows IOCP та Sun Solaris event port. Бібліотека передусім спроектована для використання в Node.js, але застосовується також в інших програмних продуктах.[4] Спочатку це була абстракція навколо libev або Microsoft IOCP, оскільки libev підтримувала тільки select(2) і не підтримувала poll(2) та IOCP у Windows. У версії node-v0.9.0 libuv залежність на libev була вилучена.[5]

Особливості

Особливості libuv включають[2]

  • Повноцінний цикл події, підтверджений epoll, kqueue, IOCP, event ports
  • Асинхронні TCP та UDP сокети
  • Асинхронні DNS запити
  • Асинхронні файлові операції та операції з файловою системою
  • Події файлової системи
  • ANSI escape code під управлінням TTY
  • IPC з поділом сокетів, використовуючи Unix domain socket або іменовані потоки (Windows)
  • Породжені процеси
  • Пул нитей
  • Обробка сигналів
  • Високоточний таймер
  • Примітиви нитей та синхронізації

Виноски

  1. The libuv github releases. GitHub. Архів оригіналу за 18 жовтня 2019. Процитовано 15 квітня 2019.
  2. а б The libuv project page and source code. GitHub. Архів оригіналу за 19 січня 2021. Процитовано 30 червня 2016.
  3. Welcome to the libuv documentation — libuv documentation. docs.libuv.org (англ.). Архів оригіналу за 26 листопада 2020. Процитовано 24 липня 2017.
  4. Projects that use libuv. libuv GitHub project page. Архів оригіналу за 18 жовтня 2019. Процитовано 30 червня 2016.
  5. An introduction to libuv. Архів оригіналу за 12 березня 2018. Процитовано 12 вересня 2019.

Посилання

  • libuv на GitHub
  • An Introduction to libuv [Архівовано 29 листопада 2020 у Wayback Machine.]
  • libuv API documentation [Архівовано 18 жовтня 2019 у Wayback Machine.]
  • libuv design overview [Архівовано 22 вересня 2020 у Wayback Machine.]
  • п
  • о
  • р
Node.js
Платформи
  • Node.js
  • Deno
  • GraalVM
  • npm
  • V8
  • libuv
  • CommonJS
Фреймворки
Мови
Хости
Бібліотеки