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.
|
|