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 git@github.com: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 — git@github.com:KayEss/beanbag.git
- beanbag-seed — Seed project for giving you a starting point to develop web applications using Beanbag — git@github.com:KayEss/beanbag-seed.git
- fost-hello — Sample seed project — git@github.com:KayEss/fost-hello.git
- mengmon — Stand alone web server — git@github.com:KayEss/mengmom.git
- test-android — Android application that runs Fost unit tests — git@github.com:KayEss/test-android.git
- wright — Experimental build system — git@github.com:KayEss/wright.git
Libraries
- f5-cord — First version of a new string library with compile time string and Unicode support — git@github.com:KayEss/f5-cord.git
- f5-json-schema — JSON Schema validation — git@github.com:KayEss/json-schema.git
- f5-threading — Preview of the first Fost 5 library which includes help for threading — git@github.com:KayEss/f5-threading.git
- fost-aws — Amazon AWS and OpenStack — git@github.com: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 — git@github.com:KayEss/fost-beanbag.git
- fost-base — Build system and core libraries — git@github.com:KayEss/fost-base.git
- fost-internet — Internet protocols, servers & clients — git@github.com:KayEss/fost-internet.git
- fost-meta — All libraries in one wrapper — git@github.com:KayEss/fost-meta.git
- fost-postgres — PostgreSQL — git@github.com:KayEss/fost-postgres.git
- fost-web — Web server libraries — git@github.com:KayEss/fost-web.git
- fost-wright — Experiment in a build system — git@github.com:KayEss/fost-wright.git
Detailed change log
cord
- Add
const
iteration of shared_buffer
. - Support (explicit) conversions of the string types to
std::string_view
- Add a new
f5::cord::string
type, immutable shared string. - Add a
starts_with
member to u8view
. - Add a missing comparison operator.
threading
- Remove the old deprecated
eventfd
based code. - Add
clear
member to tsmap
and improve the return type for unique_ptr
. - 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
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::anchor
to url::fragment
as 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