介绍:
这本“书”是一组关于如何使用libuv作为高性能事件I/O库的一系列小的教程,它在Windows和Unix上提供相同的API。
它将涵盖libuv的主要领域,但不是讨论每个函数和数据结构的全面参考。
这本书仍在进行中,所以部分可能不完整,但我希望你会喜欢它的成长。
谁需要了解libuv:
如果你正在读这本书,如果你是下列其中之一:
- 系统程序员,创建底层程序,如守护进程或网络服务和客户端。您已经发现事件循环方法非常适合您的应用程序,并决定使用libuv。
- 一个node.js模块编写者,他想将用C或c++编写的平台api与一组暴露于JavaScript的同步/异步api打包。您将纯粹在node.js的上下文中使用libuv。为此,你需要一些其他的资源,因为这本书没有涵盖特定于v8/node.js的部分。
注明:这本书假设你对C编程语言很熟悉。
背景:
node.js项目始于2009年,当时是一个与浏览器解耦的JavaScript环境。使用谷歌的V8和Marc Lehmann的libev, node.js结合了I/O模型-事件-语言非常适合编程风格;因为它被浏览器塑造的方式。随着node.js越来越流行,让它在Windows上工作很重要,但libev只能在Unix上运行。在Windows中,类似于kqueue或(e)poll的内核事件通知机制是IOCP。libuv是libev或IOCP的抽象,取决于平台,为用户提供一个基于libev的API。在libuv的node-v0.9.0版本中,libev被删除了。
从那时起,libuv不断成熟,并成为一个用于系统编程的高质量独立库。node.js之外的用户包括Mozilla的Rust编程语言和各种语言绑定。 本书及其代码基于libuv v1.3.0版本。
代码:
这本书的所有代码都包括在Github上作为这本书的源代码的一部分。复制/下载这本书,然后构建libuv:
1 cd libuv 2 ./autogen.sh 3 ./configure 4 make
不需要进行安装。要构建示例,请运行code/目录中的make。