为了利用JavaScript语言构建和运行大规模网络应用及服务,Node.js项目在2009年被提出。其后,该项目创始人Ryan Dahl加入Joyent公司,专职负责Node.js项目的研发。从2010年到2013年,Node.js快速发展,大约每个月发布一个小版本。然而,经过了Gatekeeper的更迭,Node.js项目从2014年开始贡献频率开始下降,其1.0版本也迟迟未能发布。2014年12月,多位重量级Node.js开发者另外创建了io.js,试图利用V8 JavaScript引擎实现新的特性,从而替代Node.js。io.js的社区非常活跃,促使其发展速度很快,先后于2015年1月和5月份发布了1.0和2.0版本。近期,io.js在同意与Node.js合并之后,又独立发布了一个大的版本——3.0版本。接下来,本文就io.js v3.0的主要更新进行介绍。

\\

  1. buffer方面。新版的io.js在buffer方面的更新较多。首先,该版本在V8 uint8Array的基础上重新实现了Buffer。尽管在重新实现过程中,相关设计师已经尽量减少其对性能的影响,Buffer实例化仍然要一定程度的变慢。具体性能影响根据Buffer在应用程序内使用的情况而不同。目前,Buffer可以接受ArrayBuffer作为一个构造函数的参数。当单个的buffer传给Buffer.concat()时,一个新的拷贝Buffer而不是原本的Buffer将会被返回。\\t
  2. 编译方面。新版的io.js的内核中添加了PPC支持,使得基于pLinux BE和LE的编译变得可能。\\t
  3. dgram方面。当socket.send()发生错误,而且提供callback时,错误信息只是作为callback的第一个参数进行传输。\\t
  4. freelist方面。未编档的freelist内核模块将会被拒绝。\\t
  5. http方面。状态代码目前使用官方的IANA名字作为每个RFC7231。例如,http.STATUS_CODES[414]返回'URI Too Long',而不是'Request-URI Too Large'。此外,在一个HTTP代理中调用.getName()将不再返回一个trailing colon;HTTPS代理也不再返回一个额外的colon。\\t
  6. node方面。NODE_MODULE_VERSION调整到了45,以反映ABI中的break。而且,node中引入了新的process.release对象,其包含了一个设置为'io.js'的name属性。而且该对象的sourceUrl、headersUrl和libUrl属性包含了指向相关资源的URL。与io.js绑定在一起的node-gyp版本下载和使用来自iojs.org的header文件包。\\t
  7. repl方面。永久的历史记录修改为默认处于使能状态。历史记录的文件位于~/.node_repl_history。该位置可以通过新的环境变量NODE_REPL_HISTORY来进行重新定位。而且,文件的格式修改为了纯文本类型,方便文件崩溃时进行处理。\\t
  8. smalloc方面。由于V8的变化,smalloc不再提供API。因此,smalloc模块在新的版本中被移除。\\t
  9. tls方面。该版本为TLS会话密钥rotation添加了server.getTicketKeys()和server.setTicketKeys()两个方法。\\t
  10. V8 JavaScript引擎方面。该版本io.js使用的v8引擎升级到了4.4.63.26版本。这样,一些ES6的特性(如使用--harmony-rest-parameters和--harmony-spreadcalls命令行标志可以在staging分别实现rest参数和spread操作符等)就可以被支持。\

从以上可以看出,作为io.js的一个较大的更新版本,v3.0在多个方面进行了更新。据透露,Node.js和io.js未来将会合并发布新的4.0版本。

\\


感谢徐川对本文的审校。

\\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群)。

io.js 3.0发布:重写Buffer,支持PPC相关推荐

  1. io.js 1.0.x发布

    io.js开发团队发布了io.js 1.0,但是"1.0"这个版本号并不是说它已经为应用于生成环境做好了准备. \\ io.js最初是一个有争议的Node.js分支.尽管版本号超过 ...

  2. jQuery 2.0发布,不支持IE 6/7/8

    如题  jQuery 2.0发布,不支持IE 6/7/8 这个问题找了半天,以为是js错误,md. http://www.iteye.com/news/27604

  3. Express.js 3.0 发布,Node.js 的高性能封装

    Express.js 3.0 发布,这是一个完全改进的版本,详细的改进记录与版本间的比较请看发行说明. Express.js 是对 Node.js 的一个高性能的封装,示例代码: require('e ...

  4. io.js入门(三)—— 所支持的ES6(下)

    (接上篇) 标准ES6特性 6. 新的String方法/New String methods 7. 符号/Symbols 8. 字符串模板/Template strings 新的String方法/Ne ...

  5. Mesalink v1.0.0 发布,正式支持 TLS 1.3 和 IPv6,支持CMake编译,支持Windows,实现生产环境可用...

    百度智能云 云生态狂欢季 热门云产品1折起>>>   MesaLink TLS是百度安全实验室研发的下一代传输层安全(Transport Layer Security, TLS)库. ...

  6. 安卓电视版linux,MythTV 30.0 发布,前端支持选择Android电视设备

    自从上次MythTV上报道以来,已经有一段时间了.MythTV曾经是开源DVR/PVR非常常见的HTPC软件,但现在考虑到所有的互联网流媒体和点播视频平台,这种需求已经减少了.这个月,该项目发布了My ...

  7. frp 0.11.0 发布新版,支持很多新功能

    2019独角兽企业重金招聘Python工程师标准>>> 内网穿透工具 frp 0.11.0 发布了. 新增: 增加支持 unix域套接字 的 Plugin. 增加 http prox ...

  8. HAProxy 2.0发布,长期支持版本

    HAProxy 2.0 发布了. HAProxy 是一个使用 C 语言编写的自由及开源软件,其提供高可用性.负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费.快速并且可靠的 ...

  9. 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦

    -- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v3.5.0)发布过去 9 个月了,这一次痞子衡为大家带来了版本升级 v4.0.0,这个版本主要有两个重要更新需要跟大家 ...

最新文章

  1. 【优秀作业】蚁群优化算法
  2. 图像、视频生成大一统!MSRA+北大全华班「女娲」模型怒刷8项SOTA,完虐OpenAI DALL-E...
  3. SSH-Struts第三弹:传智播客视频教程第一天上午的笔记
  4. 用Java调用WebService
  5. Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount
  6. linux 安装程序丢失链接动态库,Linux安装软件过程中提示缺少动态链接库.so的解决方法...
  7. 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程
  8. caffe学习笔记(2)
  9. 邮件实用技巧九:如何快速查看历史邮件
  10. DateTime Calendar
  11. static、const、static const、const static成员的初始化问题
  12. linux UVC and hardware viewer
  13. ovnif摄像头修改ip
  14. python画图软件是哪个_python画图软件是哪个
  15. 基于隐私保护的安全多方计算区块链融合技术的智能合约
  16. Foobar2000使用学习
  17. 2018 Android面经分享(京东,百度,陌陌,58到家等知名公司)
  18. 计算机网络安全设计毕业设计,计算机网络安全及防护毕业设计论文01
  19. 方便快捷,浏览器利器——Vimium(详解)
  20. 自学Java系列 笔记2 高级类特性1

热门文章

  1. fcm模糊聚类matlab实例_一文学会使用MATLAB将仿真、试验数据可视化附带源程序
  2. 物联网安全的三个重点
  3. elon函数_Neuroink Elon麝香制造中的灾难
  4. 通过信息系统项目管理师+系统集成我是如何做到的?
  5. 笔记-信息化与系统集成技术-供应链的特征
  6. js中const,var,let区别与用法
  7. 若依管理系统源码分析-导出Excel时怎样通过注解中readConverterExp实现格式化导出列的显示格式(0和1格式化为是否)
  8. Windows下配置Tomcat使用https协议
  9. Xcode8上传成功后,商店里构建版本却没有应用
  10. Webstorm中提示Can't use Subversion command line