The goals for next CppCMS release
The road map of the project includes several milestones:
CppCMS core components refactoring including following:
Introduction of asynchronous event loop based on Boost.Asio. This allow native and efficient and scalable support of Comet Technology (server side push).
Introduction of basic support of Win32 platform via Mingw development tools.
Remove the dependency of many libraries that can be replaced with Boost or lack important features:
- Remove CgiCC – low quality problematic library.
- Remove libfcgi – no support of asynchronous API.
- Replace libmm with Boost.Inerprocess – support of windows and rare library.
- Remove sqlite3 – it should not be there from the beginning.
Introduction of backward compatible API and ABI using opaque pointers. This would improve significantly compilation speed as well.
Removal of Boost from entire API of CppCMS due to lack of backward ABI compatibility.
Renaming internal boost
namespacein order to prevent collision with other version of Boost that developer may use – as part of support of backward ABI compatibility.
Better support of i18n and and l10n:
Support of
std::localefor localization for outputs like numbers, dates, monetary, translation and so on.Optional support of ICU via
std::localefacets that would allow high quality l10n features that are unsupported features bystd::locale.
Introduction of RPC framework that would allow easier integration between client and server side and allow easier communication of different business logic back-ends with CppCMS front-end.
Introduction of Comet support and API that allows development asynchronous web applications.
These changes will significantly break API backward compatibility with CppCMS 0.0.x series, but these changes are absolutely necessary to provide these features.
Also it would be possible to adopt the code almost "mechanically" to the new API.