After more then a year it is finally here. The kore 4.0.0 release. It has been a long time coming but real life kept me preoccupied for a long time. But here it is. Kore4 is actually real and I couldn't be more excited.
Quick shoutout to Kore its biggest sponsor, my employer Tutus Data AB.
Major new features
- - Fully priviledge seperated ACME support with Let's Encrypt or any compatible ACME provider.
- - A better way of writing Kore Python applications.
- - Full seccomp sandboxing for acme, keymgr and worker processes on Linux.
- - Ability to mix TLS and non-TLS servers in a single configuration.
- - Many improvements to the Python asynchronous runtime.
- - Configuration based redirection.
- - A complete builtin and easy to use JSON parser.
- - Several bug fixes and speed improvements.
With this release, you are able to launch your Kore Python applications directly as an argument to the kore binary. You can skip the entire configuration file and setup everything you need directly from inside your Kore Python application instead.
See the blog post from almost a year ago for more details.
Python asynchronous runtime changes
- - Runtime now under seccomp on Linux.
- - Added coroutine tracing debug options.
- - Fixed a memory leak in the kore.socket.sendto() routines.
- - Fixed a bug where a kore.lock could cause an incorrect coroutine to be woken up.
The kore 4 release includes its own simple to use JSON parser. The parser was written to be easy to understand and review.
See the documentation on how to use this.
- - DEBUG no longer implies NOOPT.
- - Removed the NOTLS compile time option.
- - Added more examples and updated several others.
- - Added a KODEV_MINIMAL option to build without OpenSSL.
- - The "static" and "dynamic" keyword have been replaced with "route".
- - Moved the libcurl implementation to level triggered i/o to avoid hacks.
- - Added a "pretty" HTTP error option.
- - Wrapped the size_t for memory allocated in a meminfo structure for the future.
- - Fixed a potential stall when reading results from libpq.
- - Python objects that can be serialized can now be sent over to other workers.