Linebender in September 2025

Daniel McNab, Raph Levien, October 14, 2025

Linebender is an informal open-source organization working on various projects to advance the state of the art in GUI for the Rust programming language.

Vello

Vello is our GPU vector renderer. It can draw large 2D scenes with high performance, using GPU compute shaders for most of the work.

We're planning to make a Vello release early in October for compatibility with Bevy v0.17.

Our sparse strip renderers are moving towards maturity. In September, we have had some improvements in Vello Hybrid's capabilities, and further performance optimisation. We're planning on making an alpha release of Vello Hybrid in October.

We're planning to make the beta release of Vello CPU in early October.

Its performance is now extremely competitive - according to our benchmarking is likely the fastest CPU-only renderer in Rust.

A grid of different gradient types. The top row is linear gradients, the middle row is radial, and the bottom row is sweep. The left column is extend, the middle column is reflect, and the right column is repeat.

Vello Hybrid now fully supports gradient paint types.

Linebender will be represented at the Graphite Community Meetup, details of which can be found in their post.

Linebender Resource Handle

Peniko's Font (and therefore also Blob) are used as vocabulary types for font resources between crates (such as Vello and Parley). However, this meant that when Peniko made semver-incompatible releases, those crates could no longer (easily) interoperate. Additionally, some crates (notably both Parley and Cosmic Text) only depended on Peniko for these interoperability types.

To resolve this, Font, Blob, and WeakBlob in Peniko are now re-exports from a new crate called Linebender Resource Handle. These types have identical API as in previous releases, but will now be the same type across Peniko versions. We have made this migration in such a way that these types are also used in the minor releases of Peniko since v0.3.x. This means that all releases of Parley and Vello from 2025 are entirely cross-compatible.

Additionally, in future releases, Parley will only depend on Linebender Resource Handle instead of Peniko, improving its compilation time for users who use Parley without Vello.

Peniko

In addition to the migration to Linebender Resource Handle, we have made small but important improvements in Peniko, our crate for shared 2d rendering types.

Release v0.4.1 is a backport release for the Linebender Resource Handle migration. We expect to release Peniko v0.5.0 very early in October.

Masonry and Xilem

Masonry is the widget system developed by Linebender. It provides a non-opinionated retained widget tree, designed as a base layer for high-level GUI frameworks.

Xilem is our flagship GUI project, inspired by SwiftUI, which uses Masonry for its widgets. It lets you build user interfaces declaratively by composing lightweight views together, and will diff them to provide minimal updates to a retained layer.

There was some work in Placehero, the Mastodon client which serves as the flagship Xilem application, to support login, but not yet wired up to the UI.

Parley

Parley is a text layout library. It handles text layout, mostly at the level of line breaking and resolving glyph positions.

Kurbo

Kurbo provides data structures and algorithms for curves and vector paths. We released v0.12 at the start of September, primarily including the new stroking work, which improves performance considerably over the previous version. In addition to the changes in that release, we also performed various optimisations.

Fearless SIMD

Fearless SIMD is our SIMD infrastructure library. It provides a solid way for writing SIMD operations portably across WASM, Aarch64, x86, and x86_64. The improvements we made in September include:

We look forward to seeing ecosystem use cases develop.

Get Involved

We welcome collaboration on any of our crates. This can include improving the documentation, implementing new features, improving our test coverage, or using them within your own code.

We host an hour long office hours meeting each week where we discuss what's going on in our projects. See #office hours in Zulip for details. We're also running a separate office hours time dedicated to the renderer collaboration, details also available at that link.

If you wish to discuss the Linebender project individually, Daniel is offering "office hours" appointments, which are free to book. It really helps us to learn what aspects our users care about the most.