Fost 5 release 5.18.09.45065 now out
Created 2018-09-25T03:04:33.343Z, last edited 2018-09-25T10:37:41.484Z
The switch to CMake has been generally pretty good. There are a few rough edges, and some weird things that it just doesn't seem to want to do. As a consequence, things like examples don't work very well yet, but it is very good that the build process now follows a more “standard” approach.
The Mac support has also had it's ups and downs. The switch to C++17 caused problem due to the age of the compiler available, but that was fixed with the new command line tools that landed week. The final piece is some changes to the system libraries that are supposed to land with Mojave. Hopefully this will be smooth when it's used.
A new JSON schema validation library has been added and schema validation features are now available in Fostgres. It would make sense to also add them to the Beanbags, but that work hasn't been planned yet, let alone started.
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
- 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 a member to fetch the number of code points from
u8view. - Fix a bug in the printing of
u8viewto streams. - Add more equality comparison for u8view.
- Add better members for initialising the
shared_buffer.
threading
- Replace the use of
eventfdwith a pipe. - Remove the deprecated
f5/threading/boost-asio.hppheader.
fost-base
- Add a parser for JSON pointers.
fostlib::json::apply_visitorcan now take any number of lambda like expressions.- An empty
jcursorneeds to be represented as an empty array in JSON. - Add an
objectandarraymember tojsonto make access and iteration simpler. - Add direct comparison between JSON and u8view.
- Add iteration over the command line arguments passed to
fostlib::arguments. - Remove
infomember from exception and changethrowtonoexcept. - Remove
fostlib::variantas it's not used. - Switch
fostlib::jsonto usestd::variant. - Remove memoize, as it's never been used.
fostlib::nullable,fostlib::null_tandfostlib::nullare now aliases to thestd::optionaltypes and values.- Add a logger that outputs single lines of JSON to the console.
- Use guids to generate temporary file names.
- Fix a potential problem with the pathname join function one of the paths is empty.
- Fix up the library searches for
dynlink - Add some missing append operation for
string - Fixed password hashing to use
u8viewinstead ofutf8_string - Fixed include for
fostlib::insert - Use a more efficient implementation for
crypto_bytes— Reverted for now as the required system call header is not always available. - Added RIPEMD-256 cryptographic hash function.
fost-internet
- Improve handling of weird ways TCP connections can be dropped and add more logging.
- The HTTP response body doesn't really need to be
const. - No longer make use of Boost regex library.
fost-wright
- Fix a bug where a child death after all jobs had been handed out would result in the parent process being killed.
- Add support for distribution of work over a network connection.
fostgres
- Add JSON schema validation for object
PUTandPATCH. - Fix the order of the expected & actual results for object request.
- Fix a bug in the HTTP request checking where expressions would be resolved twice.
- Add fg quote function
odin
- Returned Unprocessable Entity when user's email already exists in the system.
- Added Login with Odin page
- Added App module
- Added odin.api.login view
- Added link Facebook module
- Added login with Google module
- Added login with Facebook module
- Added reset forgotten password API view
- Added forgotten-password module
- Added self registration API with full-name
- Added self registration API with e-mail address
- Change the way that Odin migrations are run.
- Deprecate setting a password when a user is created. It should be done separately
© 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.

