Fost 5 release 5.16.12.45005 now out

Created 21st December, 2016 04:09 (UTC), last edited 28th March, 2017 03:04 (UTC)

The tags were pushed a few days ago now.

There is one potentially breaking change in the updates to the nullable type. Now that std::optional is in C++17 it seems sensible to move towards that. The new nullable implementation is a wrapper around std::experimental::optional, but retains the old nullable methods as well, but marks them as deprecated. It also adds a couple of methods that are in the upcoming std::optional but aren't in std::experimental::optional.

As part of the nullable changes we also stopped bringing in the std::rel_ops namespace. This could be a breaking change where you've been inadvertently relying on it for implementations of things like operator !=.

We've also improved the error handling in the fostlib::utf::save_file such that it should now throw if there is a problem saving the file. There's also a new file based log sink called panoptes which features built-in file rotation.

We didn't do the changes to the fost-orm library this time around, but expect them for the next release.

Building on Linux

git clone --branch=5.16.12.45004 --recursive git@github.com:KayEss/fost-hello.git
cd fost-hello
Boost/build 62 0
Boost/install 62 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-cord — First version of a new string library —
  • 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

  • Extend exceptions::file_error to also take a boost::system::error_code.
  • Add error detection into save_file.
  • Refactor nullable to look much more like the upcoming std::optional.
  • Remove using namespace std::rel_ops.
  • Change the fostlib::nullable class to be implemented on top of std::experimental::optional.
  • Exceptions caught in FSL_MAIN are now printed to stderr rather than stdout.
  • Fix a problem for Boost 1.62.0
  • Add the Panoptes file logger as the first of a set of optional loggers.
  • Start to make use of the Unicode support in f5-cord.
  • Make hashing digester and hmac digester movable.
  • Add a set member to the jcursor that overwrites old values in JSON structures.
  • Add logging messages about why a JWT gets rejected.
  • We need to have < defined on JSON so do that instead of std::less.
  • Added std::less overload for JSON with new fost/json header.

fost-internet

  • Add a cookie header parser.
  • Replace older Boost code with std::function and lambdas.

fost-orm

  • Record jsondb saves and handle rename errors better.
  • Add a missing lock when adding database post-commit hooks.
  • Refactor the jsondb save process to make it more clear what the actual process is.

fost-postgres

  • Add support for passing a password for the PG DSN.

fost-web

  • Load shared objects before setting up the logger so that optional loggers can be loaded.
  • Add a generic 200 response.
  • Web view execution now gives a stack trace when an exception is thrown.
  • Improved error output where a view name is mis-configured.
  • Removed the old router function as it's been replaced by view::execute.
  • Add a middleware that logs the HTTP request details and some response details.

fostgres

  • Add default lookups for the Postgres connection string parameters.

cord

  • Start to add support for Unicode with UTF-8 decoding.

threading

  • Allow for fetching of the Boost.ASIO work pool thread count.
  • lower_bound on tsmap takes the key value by reference not by copy.
  • Added a missing header.
  • Removed a dependancy on algorithms header.

Categories: