Fost 5 release 5.18.03.45059 now out
Created 2018-03-26T04:11:32.203Z, last edited 2018-03-26T08:53:54.093Z
The Mac builds are finally back! This means we now have Linux, Mac and Android. Regaining iOS support is still something for the future.
The Mac build does drop the Python 2 bindings and the Wright application. Wright isn't going to be a loss, and the Python 2 bindings need to be deprecated in favour of a newer set of Python 3 ones.
One upshot of this is that the oldest compiler we need to support is now likely to be the Mac one rather than the Android one, but it's hard to tell because Apple have a completely different versioning scheme than the llvm project uses.
There have been many changes to the string handling. This is still leading up to the large refactoring. The u8view has become much more useful and there is a shared version of this in the works. Eventually this will lead to the replacement and deprecation of the fostlib::string for a variant based constant string, and the use of std::string everywhere else.
There has also been more cleaning up and removing of Boost libraries. You may find you need to now include Boost threading headers or Boost function headers.
Building on Linux & Mac
git clone --branch=5.18.03.45059 --recursive [email protected]:KayEss/fost-hello.git cd fost-hello Boost/build hello/compile dist/bin/hello-world-d
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d
export DYLD_LIBRARY_PATH=dist/lib 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
- wright — Experimental build system — [email protected]:KayEss/wright.git
Libraries
- f5-cord — First version of a new string library with compile time string and Unicode support — [email protected]:KayEss/f5-cord.git
- f5-threading — Preview of the first Fost 5 library which includes help for threading — [email protected]:KayEss/f5-threading.git
- 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
- fost-wright — Experiment in a build system — [email protected]:KayEss/fost-wright.git
Detailed change log
cord
- Add
emptyto theu8viewand buffers. - Add ability to output
u8viewand move overloadedoperator <<s tostdnamespace. - Allow appending of a
u8viewto astd::string. u8views can be concatenated to formstd::strings.u8viewsupportsoperator <.lstringnow also has a string literal,_l.- Add
empty()member tolstirng. - The const shared string buffers need to be immutable.
u8viewcan be explicitly converted to astd::string.u8viewis now comparable withconst char *.
threading
- Don't include any Fost headers.
- Bypass the coroutine unwind exceptions for the reactor and sync.
- Move the
reactor_pooltoreactor.hpp - The
reactor_poolcan be closed and its threads joined at any time.
fostgres
- Fix the fg parser to allow whitespace and comments in more places.
fost-aws
- Removed use of
boost::function.
fost-base
- Fix bug to handle requirements for autotest libraries properly.
- Removed Boost lambda and bind
- Remove previously deprecated
fostlib::counter. - Allow the C++ version to be specified as
std-versionin the requirments.jam file. crypto_compareworks with Unicode strings.- More tagged strings can now be coerced to
jsonand tof5::u8view. - Improve the converting nullable constructor so it uses explicit type conversions.
- Make more string utilties compatible with
f5::u8view, at the cost of wide character literals. - Make
nullable<f5::u8view>coercions from JSON not throw errors if the value isn't a string. - Improve the jcursor APIs to better support u8view and move semantics.
- Add f5::lstring as an option for storage inside
fostlib::json. - Control characters need to be escaped when producing JSON strings.
- Can now mint a JWT with an initial payload.
- Remove uses of
boost::functionand makeworkerconstsane. - Add missing namespaces to the log definition macros.
- Small readability improvement to the default stdout logger.
- Crypto hashes now take a
f5::u8viewwhich should remove some memory allocations. - Deprecate
fostlib::utf::u8_viewin favour off5::u8view - Move
utf::u8_viewto f5-cord. - Remove
array_viewand replace withf5::array_viewfrom f5-cord. - Deprecate use of the
fostlib::stringJSON coercion in favour ofutf::u8_view.
fost-internet
- Make the
query_stringAPI a bit less pathalogical by caching the stringified version. - JSON arrays used as header sub-values are now set as the JSON string.
- Removed all uses of
boost::function
fost-orm
- Remove all instances of
boost::function
fost-postgres
- Put session variable names in double quotes.
- Changed the upsert function to also take an array of strings for a RETURNING clause.
fost-py
- Fix a problem with Boost 1.65
wright
- Work is distributed between workers more evenly.
© 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.

