We con the word!
Enjoy the video: http://www.youtube.com/watch?v=FOGG_osOoVg
Wikipp is converted to new CppCMS 1.x.x and running on main site!
Hello all,
Wikipp is now running on top of alpha version of CppCMS 1.x.x. It is one important step to release of first beta version of new generation of CppCMS.
Update me if you have any issues.
CppCMS 1.x.x updates
After big internal changes I explain some critical architectural updates that CppCMS 1.x.x did.
In few words:
- Removed
cppcms_boost
library. Only several essential tools, not visible to API are still taken fromcppcms_boost
which compiled statically into cppcms library. - Booster library was introduced. It is a library with boost-like interfaces that do not depend on actual boost. Some of the code is taken from boost library, some are wrappers of good C libraries and some totally new code I had written with ABI compatibility in mind.
Following my previous post feel free to update your working copies.
Rationale
CppCMS 1.x.x would provide backward compatible API and ABI and thus it can't relate on Boost library in it's public API. Only possible way to provide Boost API to users is actually wrapping it.
CppCMS 1.x.x introduces asynchronous even loop to web development - something that is very critical for Comet programming. This loop was based on Boost.Asio. But unfortunately it had very big limitations and writing a good wrapper Boost.Asio was unfeasible.
So a small "Boost_er_" library replaced required functionality from boost partially reimplementing, partially wrapping C libraries and partially borrowing the code from Boost itself.
Booster has following components:
- Smart pointers:
shared_ptr
,intrusive_ptr
from Boost and small pointers for pimpl design:hold_ptr
,copy_ptr
andclone_ptr
(my own). - Function - similar to
std::tr1::function
andboost::function
- small class important for callbacks implementation (my own implementation). - Regular expressions - wrapper of PCRE library with Boost.Regex like API. It provides only
regex
,match_result
,regex_search
andregex_match
. - System:
error_code
,error_category
andsystem_error
(my own). - Thread: Boost like pthreads wrapper.
- Locale - full Boost.Locale library (my own).
- And the most important AIO library - library inspired by Asio.
The AIO library it is central CppCMS event loop that has Asio like API - proactor design, callback interface, etc.
However unlike ASIO it uses very few template classes, it is prefork-friendly (unlike ASIO)
Booster.Aio interface would allow Comet application to receive various asynchronous notifications from any source that can deliver such notifications over sockets.
To CppCMS 1.x.x Beta Users
Edit: You may update your copies.
Hello,
Withing few weeks the CppCMS 1.x.x branch would be very unstable due to big internal changes: replacement of Boost.Asio with CppCMS's own event loop.
Latest nearly stable revision is 1154
So I'd recommend not to update your working copies of CppCMS 1.x.x. branch till further notice.
CppCMS 0.0.6 Released
CppCMS 0.0.6 was released. It includes important bug fix that causes random CppCMS service crash (abort) when using aes-encrypted cookies session storage backend.
It is important to upgrade to this version if you are using this backend.
Thanks to Bharath K. for detailed bug report.