Kore 3 released

I am happy to write that after a long time I officially tagged and released Kore 3. (Don't know what Kore is? this should explain it).

With this release comes the fact that I am moving development away from Github and towards my own infrastructure including new mailing lists, an own Git repository browsing tool, self-hosted documentation, a brand new website, etc.

Github is a fantastic tool for collaboration, but its just not for me. Call me old fashioned (at least I didn't move the repository to OpenCVS, yet).

Being able to dictate the workflow for my own open source project is something that just feels right and needed to be done. Not depending on a 3rd party is such a relief and I am looking forward to collaborating with others in a much more straightforward way.

Having said that, Kore 3 finally happened! I didn't have a real goal for this release honestly, I usually just hack on Kore to add the things I want for myself.

The biggest features in 3 are probably filemaps, better development tools (kodev), complete pgsql api rework and support for page handlers in python. You can see a more detailed list here.

Filemaps

Filemaps finally allow Kore to pretend to be a real webserver, serving files from disk to a client. They are useful if you don't want to compile in all your asset files into your Kore binary.

Depending on which platform and build configuration you have Kore will either mmap() the files or use sendfile() where available to transfer the files.

Note that Kore does not generate directory indexes, it's not that kind of feature.

Python

The python addition was started by Stanislav Yudin and provides another way of using Kore besides C. I am not a python guy myself but I was pretty excited when I got the asynchronous PostgreSQL stuff working allowing for things like:

result = await req.pgsql("db", "SELECT ...")

The python code will run directly inside of the workers processes. Only a small part of the Kore api is exposed to python but it is enough to really hack up applications quickly.

Other changes

There have been lots of other changes in this release,

a few notable ones:

Combined Log Format for accesslogs

Single binary builds now use includes from $KORE_SOURCE

Configurable x509 client verification depth

Zero-copy for incoming HTTP requests

Loads more..

So whats next?

More of the same as usual, just keep hacking on Kore, adding features I like to see and use myself.

Looking forward to seeing what people build with Kore.

.joris