Skip to content

v0.3.0 Ext

Choose a tag to compare

@Icelk Icelk released this 05 Nov 21:18
· 749 commits to main since this release

This release is 7 long months in the making.

Extensions

Completely reworked the extension system to be more useful. Now, most things not related to the core is done using extensions.

The Kvarn extensions library uses the API to add several impressive features to Kvarn.

The API is also used for CORS and CSP.

Performance

General performance is greatly improved in this release. Everything I can think of is optimized to a reasonable extent.

CI

We now use GitHub Actions as the CI for Kvarn. This increases code quality (considering the strict Clippy rules) and test validation.

That brings us on to...

Testing and Documentation

A lot of work has gone into writing tests and documenting all public items in Kvarn,

Caching

The caching capabilities of Kvarn have been increased. Finer control over cache lifetime allows for more efficient caching.

Varied cache

Now, Kvarn also implements the vary header. You can cache several responses per path if you configure the vary capability of Kvarn.

Graceful shutdown and handover

This could be a release in it's own!

Now, you can rebuild Kvarn and deploy a new version, without clients ever noticing.
The architecture of Kvarn's new graceful shutdown allows for seamless handover (on Unix platforms), not leaving 1µs of downtime!

Honourable mentions

  • Byte ranges
  • Reverse-proxy (extensions lib)
  • if-modified-since support
  • Better structure; split into several crates.
  • IPv6
  • Workflow updates
  • Much more...

Chute

I've also worked on Chute, Kvarn's MarkDown to HTML converter. With it, I've written large parts of https://kvarn.org and https://icelk.dev.
It works as a great and performant way to set up a blog, general-purpose website, or anything where you need to push out content fast.

I've included binaries for x64 Linux, ARM-64 Linux, and x64 Windows below.

Support

I will keep this release supported if any issues are found. This release is considered a stable release, unlike the last one.

See you next release!