Fost 5 release now out

Created 23rd September, 2019 03:05 (UTC), last edited 23rd September, 2019 03:42 (UTC)

All of the code has now been moved to a new home on GitHub and a couple of the libraries have had their names tweaked. Because of the way GitHub works this should be a completely transparent change.

Applications have for a while been able to use JSON as the configuration format. The problem with JSON for this is that it has very strict format requirements. Now the configuration files use a new “sloppy” JSON parser that allows commas anywhere that whitespace is allowed and also supports C/C++ style comments.

Fostgres will now always trim whitespace from strings before trying to insert them into the database. This should help with some consistency problems. If you don't want to trim the data then put "trim": false into the column configuration.

Building on Linux & Mac

You should install Boost development packages using your package manager or brew to safe you from having to build them.

git clone --branch= --recursive
cd fost-hello
mkdir build.tmp
cd build.tmp
cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=../dist
ninja install/strip
export LD_LIBRARY_PATH=../dist/lib

On the Mac you will need to set DYLD_LIBRARY_PATH before running hello

export DYLD_LIBRARY_PATH=../dist/lib

Download locations


  • fost-hello — Sample seed project —
  • fost-meta — All libraries and applications in one wrapper —
  • mengmon — Stand alone web server —
  • test-android — Android application that runs Fost unit tests —
  • test-ios — iOS application that runs Fost unit tests —
  • wright — Experimental build system —


  • cord — First version of a new string library with compile time string and Unicode support —
  • fost-aws — Amazon AWS and OpenStack —
  • 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-postgres — PostgreSQL —
  • fost-web — Web server libraries —
  • fost-wright — Experiment in a build system —
  • json-schema — JSON Schema validation —
  • threading — Preview of the first Fost 5 library which includes help for threading —

Detailed change log


  • Fix a bug in the string slice operations that could cause undefined behaviour when used with nullptr buffers.


  • Add sloppy json parser.
  • Add trim function for f5::u8view.
  • minit will now always try to execute, even if it is not needed.


  • Add a way to stop a web server instance.
  • Joining an empty fragment does not give the same result as joining a missing fragment.


  • Add array insert support.


  • Add Fost-Request-ID in every request and response
  • Add a return for status condition control when an if condition fails without else condition


  • Made implementation compatible with future changes to string APIs.


  • Add schema check before insert/update into database and refactor datum for consistent trim
  • GET requests that don't check the body content now return the response body.


  • JWTs may be placed in cookies and decoded from there.
  • Add support for password hashing process in an array