среда, 24 декабря 2014 г.

[prog.c++] В склерозник: C++ фреймворки для разработки Web-приложений

Попалось сегодня на глаза упоминание нескольких C++ инструментов для разработки Web-приложений, решил собрать все разрозненные ссылки в одном месте, дабы проще было искать, если потребуется.

Примечание. Сам ничем из этого не пользовался, так что дать какую-то характеристику каждому из инструментов не могу.


CppCMS is a Free High Performance Web Development Framework (not a CMS) aimed at Rapid Web Application Development. It differs from most other web development frameworks like: Python Django, Java Servlets in the following ways:

1. It is designed and tuned to handle extremely high loads.
2. It uses modern C++ as the primary development language in order to achieve the first goal.
3. It is designed for developing both Web Sites and Web Services.

It is available under open source LGPLv3 license and alternative Commercial License for users who needs an alternative license for proprietary software development.


C++ framework for building lightweight HTTP interfaces

The Pion Network Library is published under the Boost Software License


Tntnet is a web server which allows users to develop web applications using C++. It has a template language ecpp where C++ code can be embedded into html similar to php or jsp. The pages are compiled and linked into a shared library. The result is a native web application which is compact and fast.

    Template engine for HTML
    SSL support
    Url mapping
    API for http, http upload, authentifikation,
    Setting for http headers and cookies
    Automatical session management


All software published under tntnet.org is licensed under the LGPL with template extension. It is explicitly allowed to use the software in commercia products as closed source (although we always recommend to publish source code with all software).

TreeFrog Framework:

TreeFrog Framework is a full-stack Web application framework. Written in C++, it is lightweight (low resource demands), and allows extremely fast working.

With the aim of reducing development costs while producing a C++ framework, a policy of "convention over configuration" has been followed. The configuration file has been made as small as possible. Because it provides help in automatic generation of code for template systems (scaffolding), O/R mapping and ORM, developers are free to focus on logic.

TreeFrog Framework is open-source software, under the new BSD license (3-clause BSD License).


Wt (pronounced as witty) is a C++ library for developing web applications.

The API is widget-centric and uses well-tested patterns of desktop GUI development tailored to the web. To the developer, it offers abstraction of many web-specific implementation details, including client-server protocols (HTTP, Ajax, WebSockets), and frees the developer from tedious JavaScript manipulations of HTML and dealing with cross-browser issues. Instead, with Wt, you can focus on actual functionality with a rich set of feature-complete widgets.

Wt may be used using either an Open Source (GPL) or a Commercial License.


The Silicon Web Framework.

Silicon is a high performance, middleware oriented, C++14 http web framework. It brings to C++ the high expressive power of other web frameworks based on dynamic languages without introducing run-time overhead. Its compile-time static metaprogramming paradigm allows to match the performances of servers written in C.

The MIT License.


Cutelyst! The Qt Web Framework

Cutelyst has a plugin for uWSGI which give us support for HTTP, FastCGI, uWSGI protocols. It also features a WSGI server written in Qt which can deliver even faster HTTP or FastCGI responses. Running standalone or behind a web server is really easy.
With your application logic written in C++ your application get's really small, a full CMS (like this one) uses around 4 MB which can be shared with other instances of the same application. You save your RAM and CPU while offering your users with faster response times.

GNU LGPL v.2.1

Так же в POCO, Boost (Asio) и ACE (не в самом ACE, а в дополнительных модулях) есть что-то вроде HTTP-серверов, на базе которых можно делать что-то вроде Web-приложений/Web-сервисов.

Так же можно посмотреть на ULib C++ Library, которая позволяет реализовывать разные типы серверных приложений.

Комментариев нет: