Druid, a Rust-native UI toolkit, released v0.8 after two years of work by 80 contributors.

509 points Strom-

Druid v0.8 today

Druid, which is a Rust-native UI toolkit for building desktop
applications targeting Windows/macOS/Linux/OpenBSD/FreeBSD, has a new version out - v0.8.

This is a major release which is the result of two years of work by 80 contributors.

Some of the bigger changes include a massive rework of the textbox widget with support for IME,
and an experimental Wayland backend. These merely scratch the surface of what v0.8 brings though,
as there are over a hundred new additions, on top of all sorts of other changes and fixes.
To get a better understanding check out the comprehensive changelog.

This is great news for many who have been anticipating the release for awhile.
Druid is better than ever and therefore apps built using Druid are going to be better than ever.

Druid in the future

The Druid community is growing and the desire to contribute is there. We will continue working towards
our goal of providing a production-ready, polished, Rust-native UI toolkit with unprecedented performance.

However in order to get to that point we have decided that we need some big changes. We think these changes
will pay off big time, but in the short term this means that Druid will not have new features.

What we're doing can be best described in three parts, affecting different layers in our ecosystem.

First, at the deepest level, we are moving away from Piet,
which is a cross-platform 2D graphics abstraction. Under the hood it uses whatever the standard OS API is.
Instead we will be using Vello which we have been building
as a research project for years already. It is starting to near its v0.1, which is very exciting.
Fundamentally it is a novel GPU accelerated 2D rendering engine with a strong focus on performance.
It is not ready for benchmarks yet, but we're confident it will deliver. If you're curious, you
can check out the Vello roadmap for 2023.

Second, we are taking druid-shell from Druid and making it more generally applicable.
It is now called Glazier and its v0.1 is planned for 2023.
Compared to its ancestor druid-shell, Glazier no longer depends on Piet
and is much more agnostic towards the rendering engine, although our primary focus is on integration with Vello.
Overall you can think of Glazier as an alternative to winit with a somewhat different set of goals,
e.g. more focus on apps instead of games, and support for more OS features beyond windows.

Third, we are discontinuing Druid proper. Years of experience has shown that people can struggle
with the Druid data architecture and we can do better. This layer will be replaced by a new project
called Xilem. We have spent a lot of time thinking about it
and this decision was not taken lightly. You can read a more detailed post about the Xilem architecture
but the gist of it is that we've found a way to code UI in Rust that feels a lot more effortless
than previous attempts. Xilem will look very intuitive to those familiar with state of the art toolkits
such as SwiftUI, Flutter, and React, while at the same time being idiomatic Rust.
Also we plan to port as many widgets from Druid to Xilem as possible, which should give the project
a reasonable timeline to v0.1. Hopefully later this year.

Summary

We've spent about 5 years developing Druid and it is in a quite good place for many use cases.
The latest v0.8 release is our biggest release ever and we're sure Druid users will love it.
Even so our desire for perfection compels us to make the changes necessary, so we are
discontinuing the Druid project but also chopping it up and using the good bits to bootstrap
a whole new suite of projects under the Xilem UI toolkit umbrella.
The future of Rust UI is looking great and we're excited to help drive it forward.