I know Wt is the most stable of them, but it's a bit uncomfortable to use.
CppCMS sounds good but how stable is it? How secure is it?
I have encountered C++ Server Pages as well but there's nothing about their security in there.
Has anyone had some experience with any of those libraries and can enlight me?
4 Answers
First of all, several differences:
- Wt is GUI like framework, it is quite far from traditional web development. So, if you want to develop a code as if it was GUI it is for you.
- CppCMS is traditional MVC framework optimized for performance, it has many features like template engines, forms processing, i18n support, sessions, efficient caching and so on, support of various web server APIs: FastCGI, SCGI and CGI. If you come for Django world, you would find yourself at home.
- I'm less familiar with the third project, but it feels more like PHP -- you put the C++ code inside templates and has no clear separation of View and Controller.
Stability, I can tell only about CppCMS, it is stable, and there are applications running it 7/24, the authors blog and the Wiki with documentation of CppCMS are written in CppCMS. So, there shouldn't be major critical bugs.
Disclosure: I'm developer of CppCMS.

- 31,019
- 21
- 127
- 215
-
I'm developing an embedded application that will eventually have a 3d interface (and I do hope it's possible). What do you think that fits best? – the_drow Jul 24 '09 at 04:24
-
>>I'm developing an embedded application that will eventually have a 3d interface<< What do you mean? >>What do you think that fits best<< Both CppCMS and Wt can be used in embedded applications. CppCMS has an option to be compiler for embedded system as CGI. – Artyom Jul 24 '09 at 06:27
-
True. But do you think it fits for what I'm looking for? – the_drow Jul 24 '09 at 07:26
-
Hmm I'm not sure we have time to build testcases. – the_drow Jul 24 '09 at 09:06
-
So I would say go for CppCMS, it is web framework, it is for C++, IMHO it is good product (see disclosure).. but to be honest... You can't choose product by asking someone else: "does this product fit my needs". You need to learn it and see, if it fits your needs. – Artyom Jul 24 '09 at 09:36
-
4**i18n** stands for internationalization. Abbreviations are often unnecessarily confusing. – Dimitri C. Sep 14 '09 at 08:24
-
I do realize a proof of concept POC with CppCMS and I am impressed by session management, form widget gestion/validation, template mechanism, json server configuration and securisation. Indeed the version 1.2.1 that I test do not need any 3rd library expect PCRE, and it works well with C++03. I would have prefered to use HTTPS protocole and Websocket, features already available on Wt (heavy use of widgets) – Ratah Jan 17 '19 at 15:59
I am the developper of libapache2-mod-raii and I am very disappointed we did not recommend this library for production work... Cause I do ! :)
I also like to point out that the project page is also available in English.
On the other hand, I do not agree with Steve about the fact that servlets are not compiled on the fly, as they are !
Otherwise, on the lacks of prefork support is not my point of view, although I was looking on the issue.

- 41
- 1
On a side note, I used mod_raii a while ago to rapidly port some parts of an existing C++ application on the web.
It takes exactly the same approach than JSP, with the whole compilation part delegated to the Apache module.
I cannot recommend it for production use, since I don't have much experience in it, but it is definitely something worth playing around with, and I didn't have any issue at the time.
It lacks some features like the support of a preforked apache, but has all the needed core features.

- 4,620
- 5
- 39
- 54
Answer from 2018:
I am running on limited hardware resources, so C++ is the first thing I think of. I made a decision by looking at this benchmark of web frameworks. cutelyst
(a Qt
derivative) and Wt dominate the top spots. They are all non-libre. So, I looked into treefrog
. Right after its first and only tutorial, it is apparent that it uses qmake
from Qt
and thus Qt
's LGPL applies.
I reluctantly go with CppCMS
at the bottom of the list, as ffead
has too many errors and poco
is not a fullstack framework.
Diving into the tutorials, CppCMS
is way ahead of treefrog
when it comes to documentations. The first several tutorials are easy to follow. However when I start encountering problems, help is almost non-existent. I can't imagine how it would be like going with treefrog
to get something done. Lack of documentations (and good ones) is the reason why I dumped it in the first place.
I almost dumped CppCMS
also due to a serious roadblock. A tiny community cannot offer much help. Got Laravel
(a very popular PHP framework) installed and about to test something. Then, the CppCMS
issue seemed resolvable and I am back to it. Guess I am about to get stuffs done with CppCMS
but its constraints are showing.
The incident got me thinking, and I look back at the benchmark, allowing Java and PHP to be there. I need some alternatives in case things don't work out. Lo and behold, the top three spots are occupied by Java frameworks. Laravel
may not be the fastest, but it is really hot right now. Plus, I can call my C++ executables from PHP codes.
According to this discussion: if you use Qt
with dynamic linking, it seems that you do not have to disclose your code if you use Qt
with dynamic linking. This has to be researched, and Qt cannot be mastered within a single day. I suppose that makes cutelyst
a possible choice again, IF AND ONLY IF you can do dynamic linking, and do all your things that way. I am just not a fan Qt
's legal minefield and jumping hoops.
Through all this, I have a different look towards Java. Will still do Laravel
because of all the rage, and I am now open to things other than C++.

- 1,421
- 4
- 21
- 42