The road map of the project includes several milestones: |
Many features were introduced: |
|
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). |
1. **CppCMS Core:** |
|
- Introduction of basic support of Win32 platform |
via Mingw development tools. |
- Introduction of backward compatible API and _ABI_ |
between releases. |
|
- Remove the dependency of many libraries that can |
be replaced with Boost or lack important features: |
- Dependencies cleanup thus the only dependencies |
are ICU library and optional `libgcrypt` and |
`iconv`. |
|
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. |
Boost library is hidden from user and placed in |
private namespace. Thus neither CppCMS nor its |
users are limited to specific version of Boost |
library. |
|
- Introduction of backward compatible API and **ABI** |
using opaque pointers. This would improve |
significantly compilation speed as well. |
- Native support of Microsoft Windows platform |
was provided including the support of |
MinGW and MSVC toolsets. |
|
- Removal of Boost from entire API of CppCMS due |
to lack of backward ABI compatibility. |
2. **Ajax Support:** |
|
- 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. |
- Introduction of synchronous and asynchronous |
JSON-RPC services that allow easier |
integration between server side and client |
side Ajax applications. |
|
2. Better support of i18n and and l10n: |
3. **Comet Support:** |
|
- Support of `std::locale` for localization for |
outputs like numbers, dates, monetary, |
translation and so on. |
- Support of asynchronous/even driven programming |
was introduced to CppCMS. |
|
- Optional support of ICU via `std::locale` facets |
that would allow high quality l10n features |
that are unsupported features by `std::locale`. |
- Support of scalable Push technology. |
|
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. |
Asynchronous applications are now capable of |
management multiple request in single instance |
simultaneously in scalable and efficient way and |
push data to client side. |
|
4. Introduction of Comet support and API that |
allows development asynchronous web applications. |
2. **Improved Support of i18n and l10n:** |
|
- Powerful localization using ICU library |
is integrated into standard C++ interface of |
`std::locale` facets. |
|
This support is build with Boost.Locale library |
proposed for Boost. |
|
- Optional localization based on standard |
library for embedded applications where ICU |
may be not feasible. |
|
4. **Development and Debugging** |
|
- Internal HTTP web server for development and |
debugging was provided. |
|
- Support of dynamic view reloading without |
application restart was introduced. |
|
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. |
|