Fost 4 release now out

Created 29th September, 2015 02:50 (UTC), last edited 29th September, 2015 03:41 (UTC)

The detailed logs look pretty short, but that hides a few fairly big improvements and new features.

The builds are now completely C++14 for both Linux and Android. One consequence of this is that the platform versions of the Boost libraries will no longer work and Boost will need to be re-built.

We've started to sketch out the Fost 5 threading library, a set of very basic building blocks for thread safe storage of data. This is now a dependency for fost-base. There is also a new module system and new performance counters.

The beanbags have also gotten a bit smarter. The old implementation used a thread per beanbag to handle concurrency. Although easy to reason about this of course led to a lot of threads. The implementation has been changed to use a mutex instead. There is now a possibility of deadlock that wasn't there before if you try to do too much in a transaction.

Building on Linux

git clone --branch= --recursive
cd fost-hello
Boost/build 58 0
Boost/install 58 0

Download locations


  • beanbag — Stand alone transactional JSON database server —
  • beanbag-seed — Seed project for giving you a starting point to develop web applications using Beanbag —
  • fost-hello — Sample seed project —
  • mengmon — Stand alone web server —


  • f5-threading — Preview of the first Fost 5 library which includes help for threading.
  • fost-aws — Amazon AWS and OpenStack —
  • fost-android — Eclipse project for Android that allows Fost 4 and Beanbags to be used on mobile devices —
  • 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 —
  • fost-base — Build system and core libraries —
  • fost-internet — Internet protocols, servers & clients —
  • fost-meta — All libraries in one wrapper —
  • fost-orm — Object/Relational mapping —
  • fost-postgres — PostgreSQL —
  • fost-py — Python (2.x) bindings —
  • fost-web — Web server libraries —

Detailed change log


  • Moved the tagged string header.
  • The performance counter now takes a variadic constructor to build the path that it will be recorded into.
  • Changed the jcursor constructors to be properly variadic.
  • Added a mechanism for setting modules that are part of a system. The log messages now make use of this so it's easier to track where log messages come from.
  • fostlib::push_back now accepts a fostlib::json::array_t.
  • Deprecate fostlib::counter.


  • Improved error reporting when opening a beanbag.
  • Fixed up tests to remove use of std::auto_ptr.


  • Cleaned up some old conditional compilation that is no longer relevant.
  • Use a mutex to serialise access to the beanbag data rather than a separate thread.


  • Add MIME type for SVG files.
  • Remove uses of std::auto_ptr.
  • Add the ability for the static view to handle DELETE requests when it's configuration includes "verbs": {"DELETE": true}