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 firstname.lastname@example.org:KayEss/fost-hello.git
cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=../dist
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d
- beanbag — Stand alone transactional JSON database server — email@example.com:KayEss/beanbag.git
- beanbag-seed — Seed project for giving you a starting point to develop web applications using Beanbag — firstname.lastname@example.org:KayEss/beanbag-seed.git
- fost-hello — Sample seed project — email@example.com:KayEss/fost-hello.git
- mengmon — Stand alone web server — firstname.lastname@example.org:KayEss/mengmom.git
- test-android — Android application that runs Fost unit tests — email@example.com:KayEss/test-android.git
- wright — Experimental build system — firstname.lastname@example.org:KayEss/wright.git
- f5-cord — First version of a new string library with compile time string and Unicode support — email@example.com:KayEss/f5-cord.git
- f5-json-schema — JSON Schema validation — firstname.lastname@example.org:KayEss/json-schema.git
- f5-threading — Preview of the first Fost 5 library which includes help for threading — email@example.com:KayEss/f5-threading.git
- fost-aws — Amazon AWS and OpenStack — firstname.lastname@example.org: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@example.com:KayEss/fost-beanbag.git
- fost-base — Build system and core libraries — firstname.lastname@example.org:KayEss/fost-base.git
- fost-internet — Internet protocols, servers & clients — email@example.com:KayEss/fost-internet.git
- fost-meta — All libraries in one wrapper — firstname.lastname@example.org:KayEss/fost-meta.git
- fost-postgres — PostgreSQL — email@example.com:KayEss/fost-postgres.git
- fost-web — Web server libraries — firstname.lastname@example.org:KayEss/fost-web.git
- fost-wright — Experiment in a build system — email@example.com:KayEss/fost-wright.git
Detailed change log
const iteration of
- Support (explicit) conversions of the string types to
- Add a new
f5::cord::string type, immutable shared string.
- Add a
starts_with member to
- Add a missing comparison operator.
- Remove the old deprecated
eventfd based code.
clear member to
tsmap and improve the return type for
- Fix a bug in
tsmap::insert_or_assign which caused it to return the wrong value.
- Small improvement to API for moving things into a
- Fix a horribly broken search API in
- 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.
- Split the CMake configuraion into smaller parts.
- Changes to string handling to support wider adoption of
- 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
- 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.
url::fragment as that is the proper term.
- Add fost.schema.validate view
- Extend schema validation to fields and CSJ.
- 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