Why I didn't do that? Because web framework must be feature rich. Rendering templates and maintaining sessions is no longer fun; today people expect the frameworks to solve their countless high-level problems, such as Paypal integration, i18n, currency manipulations, etc. Needless to mention that the code must be rock solid and well documented.
What's my point? I appreciate your effort, but I'm afraid you need some greater powers to be involved in development of features. Keeping fingers crossed for this to happen!
All those high level tasks where hard in C++98. But C++11 and C++14 really helps high level programming. Silicon demonstrates that web development is now as easy in C++14 than is javascript, php, ...
The community just need to realize it, and silicon proves it by building a core framework. It reaches the ease of programming of dynamic languages like javascript or php while keeping the advantages of C++: performance and compile time code verification.
Let's see how fast the community will adopt the framework and how the numer of middleware will grow...
Given all the money spend in optimizing dynamic languages like ruby, javascript, python, ... There is a lack of performance in common web application frameworks. Why not building from a high level language that is fast by design ? With C++14 and silicon, you can finally run you app without worrying about with VM/JIT will better optimize your program.
That said, I somewhat agree wrt ASIO. I've not quite been able to get ASIO to put out the reqs/sec, and the API is iffy in some areas, even when using C++14. Imho it's tolerable with the coroutine integration, but then debugging becomes a nightmare (forget exceptions because basically every socket operation can and will throw if the client does anything iffy)
Crow is a more similar to silicon. But silicon has several advantages:
- several backend (microhttpd, websockets)
- sql middlewares and orm for sqlite and mysql
- dependency injection
(ps: I have no experience with crow)Although libmicrohttpd is a very solid first choice, I would love to see how a combination of silicon and libh2o with it's HTTP/2 engine performs.
http://www.boost.org/doc/libs/1_57_0/libs/regex/doc/html/boo...