The biggest change this time around is that a large number of APIs have been marked for deprecation. These will be removed after the next tagged release (September), so please take special care with the deprecation notices and update any code.
We are currently working on full UTF-16 and UTF-32 support in f5-cord. Once this lands then we will deprecate a slew more of old string APIs. Our target is still to replace fostlib::string
with f5::u8string
. It will of course take a while.
Good progress is being with iOS support now. There is a new unit test runner, test-ios, that passes all unit tests and is available to download and build.
We've removed a couple of the applications that were never being updated, beanbag and beanbag-seed.
We will also cut down the scope of the open source part of Odin to remove the application handling aspects. These just cause a complication and we believe that the only use cases are particular to us. Please get in touch if this is not the case.
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
- fost-hello — Sample seed project — git@github.com:KayEss/fost-hello.git
- mengmon — Stand alone web server — git@github.com:KayEss/mengmom.git
- test-android — Android application that runs Fost unit tests — git@github.com:KayEss/test-android.git
- test-ios — iOS application that runs Fost unit tests — git@github.com:KayEss/test-ios.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
f5-cord
- Deprecated two argument
substr
as the second argument handling doesn't match std::string::substr
.
f5-threading
- Replace
std::experimental::optional
with std::optional
fost-base
- Implement string conversion (ISO Zulu time) for
std::chrono::system_clock
- Add new nonce functions that return base64url formatted random data in ordered and un-ordered variants.
- Force conversion of the underlying string type from a tagged string to
std::string
be explicitly invoked. - Deprecate
length
members of tagged_string
and string
. - Add some APIs to
tagged_string
that are currently on string
. - Add
bin/minit
back into project. - Deprecate
string::length
and tagged_string<>::length
- Add a setting,
fostlib::test::c_files_folder
, describing the root folder tests should use if they need access to the file system. - Use of define
FSL_FORCE_STD_FILESYSTEM
switches from boost::filesystem
to std::filesystem
with names in fostlib::fs
. - Start to process the string deprecations that we want to have:
- Deprecate
fostlib::tagged_string<T, I>::underlying()
. - Deprecate
fostlib::string::c_str()
. - Add API for turning a
fostlib::string
into an f5::u8string
(u8string_transition
).
fost-internet
- Add methods for fetching out string version and JSON version of mime bodies.
fost-postgres
- Add
RETURNING
support to connection's update
method.
fost-web
- Add JSON directory listing view and ability to choose directory listing view for the static file server.
- The web server takes a
-C
option which changes its current directory - Text files (
text/
Content-Type) are served as UTF8.
fostgres
- Object APIs can now process JSON arrays into a separate table.
- Add a new view to retry Postgres serialisation errors.
- Add a request logging middleware that stores the per-request log to the database.
odin
- Support multiple facebook apps
- Fix view odin.password.me
- Add executable for timing password hashing rounds and configuration item for round count.