Представлена начальная реализация версии фреймворка node.js для языка C++

Дэниель Канг (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();
   }



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов