Fost 5 release 5.16.12.45005 now out
Created 2016-12-21T04:09:53.484Z, last edited 2017-03-28T03:04:02.171Z
The tags were pushed a few days ago now.
There is one potentially breaking change in the updates to the nullable type. Now that std::optional is in C++17 it seems sensible to move towards that. The new nullable implementation is a wrapper around std::experimental::optional, but retains the old nullable methods as well, but marks them as deprecated. It also adds a couple of methods that are in the upcoming std::optional but aren't in std::experimental::optional.
As part of the nullable changes we also stopped bringing in the std::rel_ops namespace. This could be a breaking change where you've been inadvertently relying on it for implementations of things like operator !=.
We've also improved the error handling in the fostlib::utf::save_file such that it should now throw if there is a problem saving the file. There's also a new file based log sink called panoptes which features built-in file rotation.
We didn't do the changes to the fost-orm library this time around, but expect them for the next release.
Building on Linux
git clone --branch=5.16.12.45004 --recursive [email protected]:KayEss/fost-hello.git cd fost-hello Boost/build 62 0 Boost/install 62 0 hello/compile dist/bin/hello-world-d
Download locations
Applications
- beanbag — Stand alone transactional JSON database server — [email protected]:KayEss/beanbag.git
- beanbag-seed — Seed project for giving you a starting point to develop web applications using Beanbag — [email protected]:KayEss/beanbag-seed.git
- fost-hello — Sample seed project — [email protected]:KayEss/fost-hello.git
- mengmon — Stand alone web server — [email protected]:KayEss/mengmom.git
Libraries
- f5-cord — First version of a new string library —
- f5-threading — Preview of the first Fost 5 library which includes help for threading.
- fost-aws — Amazon AWS and OpenStack — [email protected]:KayEss/fost-aws.git
- fost-android — Eclipse project for Android that allows Fost 4 and Beanbags to be used on mobile devices — [email protected]:KayEss/fost-android.git
- fost-android-ndk — The native code for Android. Includes required parts of Boost configured to use the standard Android build system.
- fost-beanbag — Transactional JSON database — [email protected]:KayEss/fost-beanbag.git
- fost-base — Build system and core libraries — [email protected]:KayEss/fost-base.git
- fost-internet — Internet protocols, servers & clients — [email protected]:KayEss/fost-internet.git
- fost-meta — All libraries in one wrapper — [email protected]:KayEss/fost-meta.git
- fost-orm — Object/Relational mapping — [email protected]:KayEss/fost-orm.git
- fost-postgres — PostgreSQL — [email protected]:KayEss/fost-postgres.git
- fost-py — Python (2.x) bindings — [email protected]:KayEss/fost-py.git
- fost-web — Web server libraries — [email protected]:KayEss/fost-web.git
Detailed change log
fost-base
- Extend
exceptions::file_errorto also take aboost::system::error_code. - Add error detection into
save_file. - Refactor
nullableto look much more like the upcomingstd::optional. - Remove
using namespace std::rel_ops. - Change the
fostlib::nullableclass to be implemented on top ofstd::experimental::optional. - Exceptions caught in FSL_MAIN are now printed to stderr rather than stdout.
- Fix a problem for Boost 1.62.0
- Add the Panoptes file logger as the first of a set of optional loggers.
- Start to make use of the Unicode support in f5-cord.
- Make hashing digester and hmac digester movable.
- Add a
setmember to thejcursorthat overwrites old values in JSON structures. - Add logging messages about why a JWT gets rejected.
- We need to have
<defined on JSON so do that instead ofstd::less. - Added
std::lessoverload for JSON with newfost/jsonheader.
fost-internet
- Add a cookie header parser.
- Replace older Boost code with
std::functionand lambdas.
fost-orm
- Record jsondb saves and handle rename errors better.
- Add a missing lock when adding database post-commit hooks.
- Refactor the jsondb save process to make it more clear what the actual process is.
fost-postgres
- Add support for passing a password for the PG DSN.
fost-web
- Load shared objects before setting up the logger so that optional loggers can be loaded.
- Add a generic 200 response.
- Web view execution now gives a stack trace when an exception is thrown.
- Improved error output where a view name is mis-configured.
- Removed the old
routerfunction as it's been replaced byview::execute. - Add a middleware that logs the HTTP request details and some response details.
fostgres
- Add default lookups for the Postgres connection string parameters.
cord
- Start to add support for Unicode with UTF-8 decoding.
threading
- Allow for fetching of the Boost.ASIO work pool thread count.
lower_boundontsmaptakes the key value by reference not by copy.- Added a missing header.
- Removed a dependancy on algorithms header.
© 2002-2026 Kirit & Tai Sælensminde. All forum posts are copyright their respective authors.
Licensed under a Creative Commons License. Non-commercial use is fine so long as you provide attribution.

