Download


Size Date Name SHA256 Signature
998602 2018-11-30 kore-3.2.0.tar.gz kore-3.2.0.tar.gz.sha256 Minisign signature

ChangeLog for the 3.2.0 release

Sponsors

This release was sponsored by my employer, Tutus Data AB.

TLS improvements

Support for TLS 1.3 has been added and can be used if Kore is linked with OpenSSL 1.1.1.

TLS 1.0 support has been removed.

The default is now to use TLS 1.2 and TLS 1.3, or TLS 1.2 if 1.3 is not supported by your OpenSSL library.

Python improvements (async/await)

This release adds support for async/await for socket i/o, queues, locks, processes, etc.
With these changes Kore can be used as a highly concurrent server platform for asynchronous Python code.

Note that this is not asyncio but rather similar concepts built upon the much faster Kore internal event loop.

See the documentation for more information.

Other Python changes include:

  • - Exported more C API functions to Python.
  • - Ability to read client certificate via req.connection.x509.
  • - Added a kore_python_preinit() hook.

Runtime improvements

Kore will no longer default to 1 worker process. It will instead spawn a worker process for each detected CPU on your system by default. You can change the number of worker processes by using the workers [count] configuration option.

Build tool improvements

The build tool kodev has gotten several improvements which make it easier to be integrated into existing build systems. These changes include but are not limited to: setting the object output directory, moving assets.h away from src, allowing the tool to place the resulting binary in a user-supplied path, and much more.

Other changes

  • - Added a -q flag, making Kore not log anything unless its fatal.
  • - Kore can now bind to Unix sockets. (on Linux, if prefixed with an @ this becomes an abstract socket).
  • - On OpenBSD Kore is now pledged for both the worker and keymgr processes.
  • - keymgr_runas_user has been renamed to keymgr_runas.
  • - keymgr_root_path has been renamed to keymgr_root.
  • - Several new Python examples have been added showcasing the async/await stuff.
  • - Improvements to the event loop.
  • - Added basic support for HTTP/1.0, some clients out there still talk it :)
  • - Changed the growth rate of the internal memory pools.
  • - Changed the default settings for number of workers and connections.
  • - Improvements to automatic rollbacks in pgsql.
  • - Workers can now request a shutdown of the entire platform.
  • - Added a hook kore_parent_teardown()
  • - Added a hook kore_parent_daemonized()
  • - Added a hook kore_worker_teardown()