写点什么

关注 Node.js 的 C++ 移植版 node.native

  • 2012-02-14
  • 本文字数:1010 字

    阅读完需:约 3 分钟

Node.js 逐渐受到社区的广泛关注,最近 Node.js 的 C++ 移植版 node.native 也悄然出现。node.native 遵循 C++11 语言,目前还处于紧张的开发阶段,没有正式可靠的版本。

采用 node.native 开发 Web 应用,一如 Node.js 的风格一样简洁和强大。以 Web 服务器为例,node.native 的实现代码如下:

复制代码
#include <iostream>
#include <native/native.h>
using namespace native::http;
int main() {
http server;
if(!server.listen("0.0.0.0", 8080, [](request& req, response& res) {
res.set_status(200);
res.set_header("Content-Type", "text/plain");
res.end("C++ FTW\n");
})) return 1; // Failed to run server.
std::cout << "Server running at http://0.0.0.0:8080/" << std::endl;
return native::run();
}

而采用原装 Node.js 实现的代码如下:

复制代码
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

为何 node.native 项目值得关注呢? devthought 网站列举了三条理由:

  1. C++ 语言增加了一些提高语言可用性的特性。特别是在匿名函数的支持,在 node.native 项目中应用广泛。
  2. 采用 C++ 语言可以更方便地与现有的 C/C++ 函数库交互。
  3. 不少公司基于性能的考虑,采用 C++ 编写 Web 应用程序和服务器。

除此之外, devthought 网站还针对 Node.js、LuaJIT 和 C++(node.native)三者做了一个基本的性能基准测试,结果是node.native 最佳,测试结果比Node.js 快80%。当然这只是一个粗略的评估,鉴于node.native 版本还不稳定,在得到精确的结论之前,我们还需要做严格的基准测试。

Node.js 社区最近也有些变化,Node.js 创始人 Ryan Dahl宣布 Isaac Schlueter 将接替自己的位置,而自己将转而搞其他研究项目。而微软则兑现了与 Joyent 的合作承诺,发布了支持 Node.js 的 Windows Azure SDK,Azure Node Package Manager (NPM) 模块允许开发人员在任何环境中使用 Windows Azure 存储服务来部署 Node 应用程序,还可以使用最新集成的 Cloud9 IDE 在 Azure 云端部署代码。

InfoQ 中文站会继续关注 Node.js 的发展,感兴趣的读者可以阅读《深入浅出 Node.js》专栏已发布的系列文章:

  1. 什么是 Node.js
  2. Node.js&NPM 的安装与配置
  3. 深入 Node.js 的模块机制
  4. Node.js 的事件机制
2012-02-14 09:434966
用户头像

发布了 501 篇内容, 共 272.2 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

企业遇到知识管理困境该怎么办?这里有解决方案!

Baklib

零基础小白该如何选择web前端课程呢

小谷哥

字节跳动CVPR 2022多项目夺魁,获模拟人脑感知、长视频理解挑战双料冠军

字节跳动视频云技术团队

计算机视觉 图像处理 图片处理 视频理解 视频云

数字藏品加速破圈,助力产业发现新机遇

智捷云

NFT 区块链数字藏品 数字藏品 智捷云 智捷云科技

关于Java&JavaScript中(伪)Stream式API对比的一些笔记

山河已无恙

Java stream JavaScrip

历史的坑,只能尽量填平

技术小生

事故复盘 7月月更

字节跳动数据质量动态探查及相关前端实现

字节跳动数据平台

字节跳动 数据监控 数据探查

5个开源组件管理小技巧

SEAL安全

安全 软件供应链 开源组件

运营商的时代之旅:种下5.5G的魔豆,攀上数字化的天空花园

脑极体

排队助手 | 2022年6月产品更新日志

天天预约

微信小程序 SaaS应用 排队工具 便民服务

软件研发团队如何管理成员工时,科学分配资源?

万事ONES

不同学习方式的web前端程序员有什么区别

小谷哥

十分钟生成影视级室内设计效果,红星美凯龙设计云如何升级传统家居行业

阿里云弹性计算

gpu 智能家居 异构计算

C 语言入门(八)

逝缘~

7月月更

通过 MSE 实现基于Apache APISIX的全链路灰度

阿里巴巴云原生

Apache 阿里云 微服务 云原生 灰度发布

web前端技术学习完后怎么找工作呢

小谷哥

零基础可以自学web前端技术吗

小谷哥

【技术人才懂的浪漫】TiDB 社区为你准备好了给另一半的“七夕节”礼物,回复:我要挑战,即可参与活动!

TiDB 社区干货传送门

别再说你不知道函数递归了-入门知识

芒果酱

C语言 7月月更

WhaleDI消息队列稳定性提升实践

鲸品堂

中间件

利用小程序运行时技术增强Flutter跨端开发属性

Speedoooo

flutter 小程序 移动开发 小程序容器

SQL 改写系列六:谓词推导

OceanBase 数据库

基于EasyCV复现DETR和DAB-DETR,Object Query的正确打开方式

阿里云大数据AI技术

深度学习 开源 自监督学习

Python异常知多少

迷彩

Python 异常处理 7月月更

【Docker 那些事儿】如何高效地搭建 Docker 私有仓库

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

【刷题记录】14.最长公共前缀

WangNing

7月月更

用 Flutter 给小姐姐的照片调个颜色滤镜

岛上码农

flutter ios 前端 安卓开发 7月月更

在web前端培训中怎么提升前端技术能力

小谷哥

在互联网+的潮流中,企业客户服务该何去何从?

Baklib

互联网+ 客户服务

模块2作业

项目越写越大,我是这样做拆分的

小鑫同学

项目架构 7月月更

关注Node.js的C++移植版node.native_C++_崔康_InfoQ精选文章