Fost 5 release 5.20.03.45095 now out
Created 2020-03-22T06:24:20.890Z, last edited 2020-03-23T03:41:06.265Z
There is a new library now, Makham, which is at the moment a basic coroutines library offering asynchronous task execution with ties through futures to non-coroutine code. This sits on top of the coroutines TS and is currently only usable from Clang.
There has also been more progress towards being able to move to immutable shared strings and away from the old fostlib::string interface, with more changes coming. A small change to the JSON parser has been shipped that gives a considerable performance boost (up to 30%) in some circumstances.
There is a new HTTP client library that supports testing through setting expectations which is part of the fost-internet library. Client code in the rest of the libraries will be migrated to it, which will improve testing capabilities for Fostgres and Odin.
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=5.20.03.45095 --recursive [email protected]:hotkit/fost-hello.git 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 ../dist/bin/hello
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello
export DYLD_LIBRARY_PATH=../dist/lib ../dist/bin/hello
Download locations
Applications
- fost-hello — Sample seed project — [email protected]:hotkit/fost-hello.git
- fost-meta — All libraries and applications in one wrapper — [email protected]:hotkit/fost-meta.git
- mengmon — Stand alone web server — [email protected]:hotkit/mengmom.git
- test-android — Android application that runs Fost unit tests — [email protected]:hotkit/test-android.git
- test-ios — iOS application that runs Fost unit tests — [email protected]:hotkit/test-ios.git
- wright — Experimental build system — [email protected]:hotkit/wright.git
Libraries
- cord — First version of a new string library with compile time string and Unicode support — [email protected]:hotkit/cord.git
- fost-aws — Amazon AWS and OpenStack — [email protected]:hotkit/fost-aws.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]:hotkit/fost-beanbag.git
- fost-base — Build system and core libraries — [email protected]:hotkit/fost-base.git
- fost-internet — Internet protocols, servers & clients — [email protected]:hotkit/fost-internet.git
- fost-postgres — PostgreSQL — [email protected]:hotkit/fost-postgres.git
- fost-web — Web server libraries — [email protected]:hotkit/fost-web.git
- fost-wright — Experiment in a build system — [email protected]:hotkit/fost-wright.git
- json-schema — JSON Schema validation — [email protected]:hotkit/json-schema.git
- makham — Coroutines — [email protected]:hotkit/makham.git
- threading — Preview of the first Fost 5 library which includes help for threading — [email protected]:hotkit/threading.git
Detailed change log
fost-base
jsoncan now be constructed from u16 literals.- Coercion should now always work if the to type is constructible from the from type.
- Add conversions between
stdandboostshared_ptrs. - Improve the
digesterinterface to take more string types. - Have
jsonstore the string directly rather than as ashared_ptr. This is a breaking change onjsonvisitors. - Add source file and line/column numbers to
parse_error. - Improve the
jcursorAPI so it can mutatejsonmore efficiently. - Remove
-e(print arguments/environment) support from command line.
fost-internet
- Can now set exceptions as expected outcomes from the HTTP cache.
- Add high level user agent with test expectation support.
fost-web
- Add middleware that can replace response text with fixed strings or setting values.
- Deprecate use of view instances.
- Add a reverse proxy view that allows for changes in request and response.
fostgres
- Improve the display of test failures from
fostgres-test. - Add sending of cookie values from
testserver.cookiestofostgres-test. - Add
rm-pathto test scripts so we can remove JSON from variable values. - Test scripts can now have the view JSON directly in the GET, PUT etc. calls.
odin
- allow link between two app user in odin.link.account
- Facebook and Google user with same email will merged as same user when register, and can login by both method
- Add support changing non app jwt to app jwt when renewing.
threading
tsmap::alteradded so a found member can be changed in-situ.tsmap::add_if_not_foundmiss lambda can now mutate the found item.
© 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.

