vinipsmaker / tufao

An asynchronous web framework for C++ built on top of Qt
http://vinipsmaker.github.io/tufao/
GNU Lesser General Public License v2.1
589 stars 179 forks source link

Design Model of this server #64

Closed minixxie closed 9 years ago

minixxie commented 9 years ago

Hi, Recently I'm impressed by the design model of NodeJS which uses the async IO event-driven model to gain a great concurrency. Which apache's model seems to be wrong for IO intensive requests. I'm searching for c++ framework of the same/similar model, I found this, node.native, QtWebApp, Pion, etc. For pion, I believe (not sure) it is a threaded model just like apache web server. For node.native, it is the same model of NodeJS as it is a c++ port of NodeJS. For this server, I still couldn't find any documentation about the design model being used. But I can see the keyword "asynchronous IO framework". Could you please clarify whether it is a similar model as NodeJS and/or its advantanges? Thanks & Regards, Simon

vinipsmaker commented 9 years ago

For me, incomplete documentation means bug. I'll save some time to write the design model documentation.

Given you're interested in this area, I recommend this document: https://github.com/vinipsmaker/gsoc2014-boost/blob/master/other_frameworks.md

minixxie commented 9 years ago

Thank you very much! A very good article. So this project should be very much like NodeJS, which is single-threaded async IO for handling HTTP requests. Pls correct me if I'm wrong. Simon

vinipsmaker commented 9 years ago

Well, it's C++. If you like, you can add threads to the combination (one event loop per thread and several connections per event loop), but I suggest to keep it simple.

vinipsmaker commented 9 years ago

Solved.

There will be a http://vinipsmaker.github.io/tufao/ref/1.x/design-model.html page once I release some new version of Tufão.