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 firstname.lastname@example.org:KayEss/fost-hello.git
cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=../dist
On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d
- beanbag — Stand alone transactional JSON database server — email@example.com:KayEss/beanbag.git
- beanbag-seed — Seed project for giving you a starting point to develop web applications using Beanbag — firstname.lastname@example.org:KayEss/beanbag-seed.git
- fost-hello — Sample seed project — email@example.com:KayEss/fost-hello.git
- mengmon — Stand alone web server — firstname.lastname@example.org:KayEss/mengmom.git
- wright — Experimental build system — email@example.com:KayEss/wright.git
- f5-cord — First version of a new string library with compile time string and Unicode support — firstname.lastname@example.org:KayEss/f5-cord.git
- f5-json-schema — JSON Schema validation — email@example.com:KayEss/json-schema.git
- f5-threading — Preview of the first Fost 5 library which includes help for threading — firstname.lastname@example.org:KayEss/f5-threading.git
- fost-aws — Amazon AWS and OpenStack — email@example.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 — firstname.lastname@example.org:KayEss/fost-beanbag.git
- fost-base — Build system and core libraries — email@example.com:KayEss/fost-base.git
- fost-internet — Internet protocols, servers & clients — firstname.lastname@example.org:KayEss/fost-internet.git
- fost-meta — All libraries in one wrapper — email@example.com:KayEss/fost-meta.git
- fost-postgres — PostgreSQL — firstname.lastname@example.org:KayEss/fost-postgres.git
- fost-web — Web server libraries — email@example.com:KayEss/fost-web.git
- fost-wright — Experiment in a build system — firstname.lastname@example.org:KayEss/fost-wright.git
Detailed change log
- Add a member to fetch the number of code points from
- Fix a bug in the printing of
u8view to streams.
- Add more equality comparison for u8view.
- Add better members for initialising the
- Replace the use of
eventfd with a pipe.
- Remove the deprecated `f5/threading/boost-asio.hpp` header.
- 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
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
info member from exception and change
fostlib::variant as it's not used.
fostlib::json to use
- Remove memoize, as it's never been used.
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
- Add some missing append operation for
- Fixed password hashing to use
u8view instead of
- Fixed include for
- 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.
- Improve handling of weird ways TCP connections can be dropped and add more logging.
- The HTTP response body doesn't really need to be
- No longer make use of Boost regex library.
- 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.
- Add JSON schema validation for object
- 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
- 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