写点什么

关注 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:435181
用户头像

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

关注

评论

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

太赞了!程序员应该访问的最佳网站都在这里了!

JackTian

GitHub 学习 编程 程序员 网站平台

Linkerd 2.8 - 實現超級簡單又安全的多叢集(multicluster) Kubernetes 架構

Rammus

Kubernetes DevOps 运维 云原生 Service Mesh

程序员陪娃系列——和孩子聊生死

孙苏勇

程序员 陪伴 随笔杂谈

程序员陪娃系列——育儿路上二三事续

孙苏勇

程序员 陪伴 随笔杂谈

品质网络的迭变之路,以及运营商的未来之匙

脑极体

云图说 | 3分钟创建一个游戏类工作负载

华为云开发者联盟

Docker 容器 华为云 工作负载 2048游戏

程序员陪娃系列——小小免费按摩师

孙苏勇

程序员 陪伴 随笔杂谈

程序员陪娃系列——育儿路上二三事

孙苏勇

程序员 陪伴 随笔杂谈

一次好的聊天可以超过自己努力啃几周的书籍

良知犹存

程序人生

内存总是不够?HBase&GeoMesa配置优化了解一下

华为云开发者联盟

内存模型 内存 HBase 大集群 GeoMesa

一款基于 Python 语言的 Linux 资源监视器!

JackTian

Python GitHub Linux bashtop bpytop

程序员陪娃系列——小娃的到来

孙苏勇

程序员 陪伴 随笔杂谈

构造、析构期间被调虚函数发生的惨案,长教训!

华为云开发者联盟

代码 组合模式 封装、继承、多态 bug 回调函数

边云协同!EM-BOX视频分析盒加速安全生产场景落地AI应用

百度大脑

人工智能 人脸识别 图像识别 百度大脑 人体识别

Android 原生 SQLite 数据库的一次封装实践

vivo互联网技术

sqlite android 数据库

多角度分析,通讯时序数据的预测与异常检测挑战

华为云开发者联盟

时序数据库 即时通讯 异常检测 网络智能体 时序预测

使用 supervisor 配置 ngrok 内网穿透为守护进程

jerry.mei

Linux 操作系统 ngrok 守护进程 内网穿透

MySQL“被动”性能优化汇总!

王磊

MySQL

LeetCode题解:21. 合并两个有序链表,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

《Java并发编程的艺术》读书笔记1:说说并发编程

Jason

多线程 并发

BIGO技术:实时计算平台建设

InfoQ_3597a20b53cc

互联网 BIGO

低代码平台会让程序员失业?测评了5个工具,谁能让效率提高N倍?

代码制造者

编程 编程语言 低代码 零代码 测评

学生党学编程,有这个开源项目就够了!

JackTian

GitHub 学习 编程 程序员 学生党

趣文:那天我被拉入 C++ 亲友群

程序员生活志

c c++ 程序员

“云”上教与学,让教育不止步于课堂

Geek_116789

入职两周,怀疑自己进了假百度!跟传说中完全不一样!难道真有两家百度公司?

程序员生活志

百度 程序员

程序员陪娃系列——见你的第一面

孙苏勇

程序员 陪伴 随笔杂谈

移卡荣登2020「AI 最佳成长榜」,AI+金融科技赋能商业服务

DT极客

数据库外键

will

数据库 性能 外键

学了那么多技术,为何依然成不了架构师

菜根老谭

架构设计原则

【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研

华为云开发者联盟

反馈 API 华为云 API Explorer平台 用户调研

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