This release features a significantly faster JSON unparser/stringifier which can be given a std::string
to use as a buffer to stringify into. This is used by a new module for the web server that we should be releasing over the next month or two.
The Android switch from gcc to clang has just been done, but didn't make it into this release. The clang versions are far in advance of gcc so we can start to use some more of the C++14 features we'd like to.
The bad news is that gcc have made a breaking change to their ABI. Although use of the new ABI is optional many distributions have picked it up, including Ubuntu. This breaks clang builds on all of these platforms. It isn't at all clear what the resolution will be or when it will land. This seems especially shameful on Ubuntu where the broken compiler first hit an LTS release.
Building on Linux
git clone --branch=5.16.03.44971 --recursive git@github.com:KayEss/fost-hello.git
cd fost-hello
Boost/build 58 0
Boost/install 58 0
hello/compile
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
Libraries
- f5-threading — Preview of the first Fost 5 library which includes help for threading.
- fost-aws — Amazon AWS and OpenStack — git@github.com:KayEss/fost-aws.git
- fost-android — Eclipse project for Android that allows Fost 4 and Beanbags to be used on mobile devices — git@github.com: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 — 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-orm — Object/Relational mapping — git@github.com:KayEss/fost-orm.git
- fost-postgres — PostgreSQL — git@github.com:KayEss/fost-postgres.git
- fost-py — Python (2.x) bindings — git@github.com:KayEss/fost-py.git
- fost-web — Web server libraries — git@github.com:KayEss/fost-web.git
Detailed change log
fost-base
- Add the F5 threading library to the standard project includes.
- Optimise the JSON unparse, especially for the case where we can unparse into a buffer.
- Add a
fostlib::json::unparse
that takes a fostlib::string
. - Add a
fostlib::json::get
overload that can be given a default to substitute if the value doesn't exist. - Added coercion for
std::vector
to JSON, which will give an array of the vector values coerced to JSON.
fost-beanbag
- Downgrade two log messages to debug level.
- Add
PATCH
method to the raw beanbag view and operations for manipulating them. - Add
op:remove
and op:created
transformations for PATCH
requests.
fost-orm
- Fix up the use of the root position in the
jsondb::local
and add a new rebase
method for changing it. This causes a breaking change in the transformation function signature which now needs to take the transaction root as an argument.
fost-py
- Fixed which JSON unparse gets used by Python.
fost-web
- Improve error display and add logging of errors.