Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scalable server framework in C++

I am looking to write a server application in C++ that is meant to handle tens of thousands of clients simultaneously. It should run under Windows and Linux. I have been looking around for frameworks and libraries and have come across Boost Asio, which seems like a highly mature and widely used alternative. I just have trouble wrapping my head around strands/thread pools, mainly because of the millions of templates. My background is mainly in C, so am not really used to the template mess that Boost in general seems to be full of. I tried to find someone to develop a relatively thin wrapper around Boost Asio that would take care of the threading/synchronization aspect using strands, bind and the like, but have been unable to find someone yet who can do it within my budget (2 or 300 US dollars).

Can any of you recommend any other libraries that scale as well as Boost Asio (e.g. with IOCP on Windows and epoll on Linux etc), or a source where I might find skilled Boost developers looking for smaller freelance jobs?

Thanks very much in advance for any help.

Kind regards,

Philip Bennefall

like image 433
Philip Bennefall Avatar asked Jul 15 '11 00:07

Philip Bennefall


1 Answers

ACE is the framework you are looking for. Even boost Asio is just an implementation of Proactor pattern, which was introduced by Douglas C. Schmidt. He is best known as the author of POSA Vol.2 and the creator of ACE framework.

The Boost.Asio library offers side-by-side support for synchronous and asynchronous operations ... based on the Proactor design pattern [POSA2].

Although it is a cross-platform C++ network framework and uses template, just simple template is used. (or not at all)

My background is mainly in C, too, and I don't like Boost's massive template-programming style. However, ACE wasn't like that.

like image 135
ddoman Avatar answered Sep 30 '22 23:09

ddoman