Дэниель Канг (Daniel Kang) представил первую экспериментальную реализацию фреймворка node.js для языка C++, позволяющую создавать высокопроизводительные приложения в стиле оригинального node.js, но ориентированный на выполнение скомпилированного кода на языке С++, без использования JavaScript.

Node.native представляет собой асинхронный I/O-фреймворк, архитектурно и идейно сходный с фреймворком node.js. Однако, в отличие от последнего он не использует JavaScript-движок V8 и предназначен исключительно для программирования на языке C++11, возможности параллельного программирования которого и вдохновили автора на создание проекта. Как и оригинальная реализация, node.native перекладывает работу по обслуживанию запросов ввода-вывода на отдельные потоки, благодаря чему удается достичь высокого уровня производительности приложений.

В данный момент проект находится в начальной стадии разработки и пока не может предоставить разработчикам всех возможностей node.js, но опережает его в производительности в синтетических тестах на 80%. Если верить словам автора, он продолжит активно работать над реализацией и совсем скоро выпустит полноценную версию фреймворка, сходную по функциональности с node.js.

Простейший пример веб-сервера на 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();
}


Источник: http://www.opennet.ru/opennews/art.shtml?num=33130