Created 25th September, 2018 03:04 (UTC), last edited 25th September, 2018 10:37 (UTC)
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 git@github.com: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 — 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-json-schema — JSON Schema validation — git@github.com:KayEss/json-schema.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-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-postgres — PostgreSQL — git@github.com:KayEss/fost-postgres.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 a member to fetch the number of code points from
u8view
. - Fix a bug in the printing of
u8view
to streams. - Add more equality comparison for u8view.
- Add better members for initialising the
shared_buffer
.
threading
- Replace the use of
eventfd
with a pipe. - Remove the deprecated `f5/threading/boost-asio.hpp` header.
fost-base
- Add a parser for JSON pointers.
-
fostlib::json::apply_visitor
can now take any number of lambda like expressions. - An empty
jcursor
needs to be represented as an empty array in JSON. - Add an
object
and array
member to json
to make access and iteration simpler. - Add direct comparison between JSON and u8view.
- Add iteration over the command line arguments passed to
fostlib::arguments
. - Remove
info
member from exception and change throw
to noexcept
. - Remove
fostlib::variant
as it's not used. - Switch
fostlib::json
to use std::variant
. - Remove memoize, as it's never been used.
-
fostlib::nullable
, fostlib::null_t
and fostlib::null
are now aliases to the std::optional
types 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
u8view
instead of utf8_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
PUT
and PATCH
. - 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