Libuv教程
+ -

Libuv 简介

2019-09-09 0 0

libuv是什么?


libuv是一个高性能的,事件驱动的I/O库,并且提供了跨平台(如windows, linux)的API。
libuv是一个多平台支持库专注于异步I / O. 它主要是为Node.js开发的,但它也被Luvit,Julia, pyuv和其他人使用。
libuv

libuv可以干什么?


  • 开发守护进程或者网络服务器/客户端。
  • nodej的相关底层开发。

libuv的产生背景


node.js最初开始于2009年,是一个可以让Javascript代码离开浏览器的执行环境也可以执行的项目。 node.js使用了Google的V8解析引擎和Marc Lehmann的libev。Node.js将事件驱动的I/O模型与适合该模型的编程语言(Javascript)融合在了一起。随着node.js的日益流行,node.js需要同时支持windows, 但是libev只能在Unix环境下运行。Windows 平台上与kqueue(FreeBSD)或者(e)poll(Linux)等内核事件通知相应的机制是IOCP。libuv提供了一个跨平台的抽象,由平台决定使用libev或IOCP。在node-v0.9.0版本中,libuv移除了libev的内容。

随着libuv的日益成熟,它成为了拥有卓越性能的系统编程库。除了node.js以外,包括Mozilla的Rust编程语言,和许多的语言都开始使用libuv。

libuv的网址


libuv的官网:http://docs.libuv.org/
git库: https://github.com/libuv/libuv
发布包:https://dist.libuv.org/dist/

libuv功能亮点

  • 由epoll,kqueue,IOCP,事件端口支持的全功能事件循环。
  • 异步TCP和UDP套接字
  • 异步DNS解析
  • 异步文件和文件系统操作
  • 文件系统事件
  • ANSI转义码控制TTY
  • IPC与套接字共享,使用Unix域套接字或命名管道(Windows)
  • 子进程
  • 线程池
  • 信号处理
  • 高分辨率时钟
  • 线程和同步原语

版本

从版本1.0.0开始,libuv遵循语义版本控制 方案。API更改和向后兼容性规则是SemVer指示的规则。libuv将在主要版本中保持稳定的ABI。

可以在此处跟踪ABI / API更改。

许可

libuv根据MIT许可证获得许可。检查LICENSE文件。该文档根据CC BY 4.0许可证进行许可。检查LICENSE-docs文件。

0 篇笔记 写笔记

ObjectiveC 简介
Objective-C,Objective C入门,Objective C教程,ObjectiveObjective-C是一种通用的,面向对象的编程语言,它将Smalltalk样式的消息传递添加到C编程语言中。它是苹果公司用于OSX和iOS操作系统及其API(Cocoa和Cocoa Touch)的主......
SQLite 简介
SQLite是一个轻型的数据库,无需任何服务,无需任何配置的绿色数据库。SQLite是一个进程内库,它实现了一个自包含、无服务器、零配置、事务性SQL数据库引擎。SQLite的代码在公共域中,因此可以免费用于任何目的,无论是商业还是私有。SQLite是世界上部署最广泛的数据库,其应用程序比我们所能统......
设计模式 简介
设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码......
Perl 简介
Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。Pe......
MongoDB 简介
什么是MongoDB ?MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>va......
MakeFile 简介
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。在 UNIX 系统中,习惯使用 Makefile 作为 m......
Libuv 网络简介
在 libuv 中,网络编程与直接使用 BSD socket 区别不大,有些地方还更简单,概念保持不变的同时,libuv 上所有接口都是非阻塞的。它还提供了很多工具函数,抽象了恼人、啰嗦的底层任务,如使用 BSD socket 结构体设置 socket 、DNS 查找以及调整各种 socket 参数......
简介
qt学习笔记......
MongoDB NoSQL 简介
NoSQL(NoSQL = Not Only SQL ),意即”不仅仅是SQL”。在现代的计算系统上每天网络上都会产生庞大的数据量。这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd’s提出的关系模型的论文 “A relationalmodel of da......
Bochs 简介
Bochs(读音Box)一个基于LGPL许可发行开源代码的x86,x86-64 IBM PC兼容机的模拟器和调式工具。它支持X86 AMD64CPU,内存,硬盘,显示器,以太网卡,BISO及常见的兼容IBM PC的硬件外设的虚拟仿真。Bochs官网:http://bochs.sourceforge.......
C++ 简介
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。C++ 被认为是一种 中 级语言,它综合了高级语言和低级语言的特点。C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ ......
Nasm 简介
机器语言每种类型的CPU都能理解它们自己的机器语言。机器语言里的指令是以字节形式在内存中储存的数字。每条指令有它唯一的数字码称为 操作代码 ,或简称为 操作码 。80x86处理器的指令大小不同。操作码通常是在指令的开始处。许多指令还包含指令使用的数据( 例如: 常量或地址)。机器语言很难直接进行编程......
正则表达式 简介
除非您以前使用过正则表达式,否则您可能不熟悉一些术语。但是,毫无疑问,您已经使用过不涉及脚本的某些正则表达式概念。例如,您很可能使用 ? 和 * 通配符来查找硬盘上的文件。? 通配符匹配文件名中的 0 个或 1 个字符,而 * 通配符匹配零个或多个字符。像data(w)?.dat 这样的模式将查......
XPath 简介
在学习XPath之前,我们应该首先了解XSL,它代表 E 可扩展 Styletsheet L语言。它类似于XML,而CSS类似于HTML。了解了解XSL对于HTML文档,标签是预定义的,例如table,div,span等。浏览器知道如何向其添加样式以及如何使用CSS样式显示它们。但是在XML文档的情......
Docker 简介
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后......
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!