Fost 5 release 5.18.12.45070 now out
Created 2018-12-22T03:42:46.312Z, last edited 2019-06-24T04:23:03.015Z
There are some large changes in process at the moment. We're revamping the string handling in f5-cord to used shared ownership and persistent data. The new string has many improvements and fostlib::string will continue to bridge the gap between the old and new designs, although we will start on a track of deprecation of much of the old API.
We are also tidying up the JSON implementation to work with the new string type. This will split it apart from the rest of fost-base and make it much easier to use in other projects.
The Android unit test runner is now fully working and stable. It runs all of the “check” tests from all of the relevant libraries. For details check it out on Github. The Apple Mac builds are now also fully stable (at least for Mojave) and we are working on a Mac iOS test runner to complement the Android one. This should be working by the next release.
Lots of changes have been made to the cmake builds to make them more flexible. The f5-json-schema library is now usable for validating request bodies for web APIs.
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.18.09.45065 --recursive [email protected]:KayEss/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-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
- test-android — Android application that runs Fost unit tests — [email protected]:KayEss/test-android.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-json-schema — JSON Schema validation — [email protected]:KayEss/json-schema.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-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-postgres — PostgreSQL — [email protected]:KayEss/fost-postgres.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
constiteration ofshared_buffer. - Support (explicit) conversions of the string types to
std::string_view - Add a new
f5::cord::stringtype, immutable shared string. - Add a
starts_withmember tou8view. - Add a missing comparison operator.
threading
- Remove the old deprecated
eventfdbased code. - Add
clearmember totsmapand improve the return type forunique_ptr. - Fix a bug in
tsmap::insert_or_assignwhich caused it to return the wrong value. - Small improvement to API for moving things into a
tsmap. - Fix a horribly broken search API in
tsmap.
json-schema
- Complete the implementation of fetching schemas over HTTP(S).
- The implementation now fully conforms to the V7 test suite.
- Added an API that can be used to register schema loaders.
- Refactor the assertion functions so that they will be easier to extend in future.
fost-base
- Split the CMake configuraion into smaller parts.
- Changes to string handling to support wider adoption of
f5::u8string - Support EdDSA JWTs.
- JWT secrets can now be looked up via a function passed to the load function.
- Add iterator traits to JSON iterator.
- Tidy up some headers.
- Do less work when stringifying JSON.
- Refactor the integral to integral coercions to remove a lot of complex template meta-programming.
- Add a way to get a JSON pointer URL fragment string for a
jcursor.
fost-internet
- Allow setting a URL fragment from a jcursor.
- Implement a better URL join that covers many more of the required cases.
- Remove usernames and passwords from URLs.
- Rename
url::anchortourl::fragmentas that is the proper term.
fost-web
- Add fost.schema.validate view
fostgres
- Extend schema validation to fields and CSJ.
odin
- Add odin.password.hash view
- Remove deprecated warnings
- Added odin.app.installation view
- Support app OPEN access policy
- odin.app.secure doesn't need app_id as a prefix anymore.
- Fix table app_user PK order
- Add table app_role_ledger
- Add table app_user_role_ledger
- Added app user roles
- Tighten up some APIs in the example configuration.
- Added module opts/installation-id
- Added odin.app.handover view
- Added odin.app.verify view
- Added odin.app.secure view
- Added Expire user module
© 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.

