The Mac builds are finally back! This means we now have Linux, Mac and Android. Regaining iOS support is still something for the future.
The Mac build does drop the Python 2 bindings and the Wright application. Wright isn't going to be a loss, and the Python 2 bindings need to be deprecated in favour of a newer set of Python 3 ones.
One upshot of this is that the oldest compiler we need to support is now likely to be the Mac one rather than the Android one, but it's hard to tell because Apple have a completely different versioning scheme than the llvm project uses.
There have been many changes to the string handling. This is still leading up to the large refactoring. The u8view
has become much more useful and there is a shared version of this in the works. Eventually this will lead to the replacement and deprecation of the fostlib::string
for a variant based constant string, and the use of std::string
everywhere else.
There has also been more cleaning up and removing of Boost libraries. You may find you need to now include Boost threading headers or Boost function headers.
Building on Linux & Mac
git clone --branch=5.18.03.45059 --recursive git@github.com:KayEss/fost-hello.git
cd fost-hello
Boost/build
hello/compile
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
- 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-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 — 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
- fost-wright — Experiment in a build system — git@github.com:KayEss/fost-wright.git
Detailed change log
cord
- Add
empty
to the u8view
and buffers. - Add ability to output
u8view
and move overloaded operator <<
s to std
namespace. - Allow appending of a
u8view
to a std::string
. -
u8view
s can be concatenated to form std::string
s. -
u8view
supports operator <
. -
lstring
now also has a string literal, _l
. - Add
empty()
member to lstirng
. - The const shared string buffers need to be immutable.
-
u8view
can be explicitly converted to a std::string
. -
u8view
is now comparable with const char *
.
threading
- Don't include any Fost headers.
- Bypass the coroutine unwind exceptions for the reactor and sync.
- Move the
reactor_pool
to reactor.hpp
- The
reactor_pool
can be closed and its threads joined at any time.
fostgres
- Fix the fg parser to allow whitespace and comments in more places.
fost-aws
- Removed use of
boost::function
.
fost-base
- Fix bug to handle requirements for autotest libraries properly.
- Removed Boost lambda and bind
- Remove previously deprecated
fostlib::counter
. - Allow the C++ version to be specified as
std-version
in the requirments.jam file. -
crypto_compare
works with Unicode strings. - More tagged strings can now be coerced to
json
and to f5::u8view
. - Improve the converting nullable constructor so it uses explicit type conversions.
- Make more string utilties compatible with
f5::u8view
, at the cost of wide character literals. - Make
nullable<f5::u8view>
coercions from JSON not throw errors if the value isn't a string. - Improve the jcursor APIs to better support u8view and move semantics.
- Add f5::lstring as an option for storage inside
fostlib::json
. - Control characters need to be escaped when producing JSON strings.
- Can now mint a JWT with an initial payload.
- Remove uses of
boost::function
and make worker
const
sane. - Add missing namespaces to the log definition macros.
- Small readability improvement to the default stdout logger.
- Crypto hashes now take a
f5::u8view
which should remove some memory allocations. - Deprecate
fostlib::utf::u8_view
in favour of f5::u8view
- Move
utf::u8_view
to f5-cord. - Remove
array_view
and replace with f5::array_view
from f5-cord. - Deprecate use of the
fostlib::string
JSON coercion in favour of utf::u8_view
.
fost-internet
- Make the
query_string
API a bit less pathalogical by caching the stringified version. - JSON arrays used as header sub-values are now set as the JSON string.
- Removed all uses of
boost::function
fost-orm
- Remove all instances of
boost::function
fost-postgres
- Put session variable names in double quotes.
- Changed the upsert function to also take an array of strings for a RETURNING clause.
fost-py
- Fix a problem with Boost 1.65
wright
- Work is distributed between workers more evenly.