Fost 5 release 5.17.09.45051 now out
Created 2017-09-23T03:51:49.796Z, last edited 2017-09-23T04:12:25.156Z
The layout changes to fostlib::json have now landed. Previously the atomic parts of JSON (bool, int, double, string etc.) where stored in a separate variant to the one that handled the atomic, array and object parts. By bringing this all into one variant the type is smaller and dealing with atomic types is faster.
As part of this change we also changed the object and array to being stored by a shared_ptr rather than directly. This was always the intended design, and means that now taking a copy of a json is significantly cheaper. We have some more changes coming now that we have this base that should make the type smaller still and further improve performance.
We're also still moving towards improving string handling with a few new immutable string types in the pipeline and a move towards using immutable string views in many more places.
It's also about time that we get serious with Python 3 support. All of our projects are now using this and we need to be able to support bindings for it correctly. There's still some debate about whether that should be a branch in fost-py or a separate library. In any case the entirety of the Python 2 version will be replaced with something completely new.
Building on Linux
You will need a C++14 compiler. Recent versions of either gcc or clang are suitable.
git clone --branch=5.17.09.45051 --recursive [email protected]:KayEss/fost-hello.git cd fost-hello Boost/build hello/compile 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 a
_tliteral for creatingtstringinstances. This allows us to deprecate thevstringtemplate. - Added
iostreamoutput forlstring.
fostgres
- Add
-hand-Uoptions to fostgres-test to control how to access the database.
fost-base
- Fix generation of log messages from JSON where the modules are an array.
- Count the number of times an exception has been absorbed.
- Remove
variantfor storing atoms injson - Don't print empty objects in the log stream.
- Load the global logging configuration much later so it can be changed using the
-ior-jcommand line switches. - Better integrate
utf::u8_viewandstring. - Make
array_viewsliceable. - There is now an explicit constructor from
std::stringfor theu8_view. - Make dates fully comparable.
- Improve error report when coercing JSON to strings fails.
- The
unexpected_eoferror can now take aboost::system::error_codefor use with socket errors.
fost-internet
- Ampersands, single quote and dollar symbol added to allowed URL path characters.
- The conversion of HTTP request file paths to strings now works for a wider range of inputs. The conversion to
boost::filesystem::wpathis problematic with Boost versions prior to 1.64 due to the way they use codecvt.
fost-orm
- Improve error report when a beanbag update precondition wasn't met.
fost-postgres
- Make it possible to iterate over the columns in the row.
- Change libpqxx paths for latest code.
- Implement assignment and pre-increment for
recordset::const_iterator
fost-py
- The spider always outputs a
test.txtfile with all results in it.
fost-web
- The template middleware now uses the headers from the wrapped view instead of throwing them away.
- Logging middleware also records the processing duration.
© 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.

