The road map of the project includes two important milestones: |
The road map of the project includes several milestones: |
|
1. 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: |
|
1. Remove CgiCC -- low quality problematic library. |
2. Remove libfcgi -- no support of asynchronous API. |
3. Replace libmm with Boost.Inerprocess -- support |
of windows and rare library. |
4. 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 `namespace` in order to |
prevent collision with other version of Boost |
that developer may use -- as part of support of |
backward ABI compatibility. |
|
2. Better support of i18n and and l10n: |
|
- Support of `std::locale` for localization for |
outputs like numbers, dates, monetary, |
translation and so on. |
|
- Optional support of ICU via `std::locale` facets |
that would allow high quality l10n features |
that are unsupported features by `std::locale`. |
|
3. 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. |
|
4. 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. |
|