Linebender in December 2025
Kaur Kuut, January 15, 2026
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 vector renderer with three different implementations. There is the fully GPU compute based Vello, the fully CPU based Vello CPU, and the hybrid GPU/CPU one called Vello Hybrid. They can draw large 2D scenes with high performance.
- vello#1294: Added features to Vello CPU to switch between
u8andf32pipelines. - vello#1327: Eliminated overdraw for opaque image fills.
- vello#1325: Reduced the memory usage of wide tile commands.
- vello#1303: Fixed filter expansion logic for transforms with scale/skew and for clipped layers.
- vello#1313: Fixed gradients within a clip layer in Vello Hybrid.
- vello#1323: Fixed non-deterministic GPU stroke artifacts.
The work on rendering sparse strip alpha values in GPU compute shaders continued in vello#1293, which added tile intersection checking. You can follow the progress in #vello > Thoughts on GPU sparse strips.
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.
- xilem#1519: Added
Canvaswidget, for 2d vector drawing. - xilem#1510: Added a new
CollectionWidgettrait to unify collection widget method naming. - xilem#1527: Added
Gapproperty toFlexandGrid. - xilem#1528: Added alternative text to
Imagewidget. - xilem#1526: Implemented
Into<BrushRef>forBorderColor. - xilem#1534: Migrated to Kurbo's
Axis. - xilem#1488: Renamed
map_messagetomap_message_result. - xilem#1533: Renamed
Gridattributes fromwidth/heighttorow_count,column_count. - xilem#1484: Split Android examples into separate files.
- xilem#1503: Split some Xilem code into new a new
xilem_masonrypackage. - xilem#1504: Fixed
TextInputplaceholder alignment. - xilem#1537: Fixed
ScrollBarbehavior with large content sizes. - xilem#1540: Improved
Flexchild constraint accuracy. - xilem#1507: Wrote guidelines for writing Xilem doc examples.
- xilem#1544: Documented node non-persistence in accessibility method.
- xilem#1545: Now using third person more consistently in docs.
Parley
Parley is a text layout library. It handles text layout, mostly at the level of line breaking and resolving glyph positions.
- parley#436: Migrated text analysis and internationalization to ICU4X.
- parley#479, parley#481: Started work on a dedicated glyph rendering crate.
- parley#475: Now using ICU4X
Scripttype infontique. - parley#473: We now bake composite properties data.
- parley#487: Export
Tagfrom HarfRust, to allow users to use it directly. - parley#490: Fixed bidi state leaking across layouts.
- parley#493: Fixed crash with empty layout.
- parley#498: Updated to
ui-events0.2.
Kurbo
Kurbo provides data structures and algorithms for curves and vector paths.
Peniko
Peniko is a 2D graphics type library which provides a set of generic types that define styles for rendering and composition.
- peniko#155: Updated to Kurbo 0.13.
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.
- fearless_simd#141: Added
any_true,all_true,any_false, andall_falsemethods for mask types. - fearless_simd#167: Added precise float-to-integer conversions, which saturate out-of-bounds results and convert
NaNto0on all platforms. - fearless_simd#168: Added
Level::is_fallback, which states whether the current SIMD level is the scalar fallback. - fearless_simd#155: Added a vectored shift left operation.
- fearless_simd#154: Added documentation for operations and vector types.
- fearless_simd#149: Reworked the API.
- fearless_simd#158: Renamed
madd/msubtomul_add/mul_subfor consistency withstd. - fearless_simd#159: Now using native vector types to back SIMD types.
- fearless_simd#170: Made
Elementan associated type onSimdBase. - fearless_simd#180:
SimdFrom::simd_fromnow takes the SIMD token as the first argument instead of the second.
Velato
Velato is our Lottie render library. The goal is to provide coverage of the large Lottie spec, up to what Vello can render, for use in interactive graphics.
We released Velato 0.8 and 0.8.1. 🎉
Bevy Vello
Bevy Vello is our Bevy integration for Vello. The goal is to provide support for rendering scenes, text, SVGs, and Lotties in the Bevy game engine.
We released Bevy Vello 0.11, 0.12, and 0.12.1. 🎉
- bevy_vello#185: Added support for
UiTransformfor raw Vello scenes. - bevy_vello#188: Finished adding Bevy 0.17 support.
- bevy_vello#191: Renamed
SSRenderTargettoVelloRenderTarget. - bevy_vello#195, bevy_vello#196: Fixed AABBs not being correctly calculated.
Resvg
Resvg is our fast, small, portable SVG library.
- resvg#980, resvg#981: No longer writing empty
<defs />. - resvg#987: Now using checked arithmetic when computing bounding box.
- resvg#990: Fixed panicking during pixmap creation.
SimpleCSS
SimpleCSS is a basic CSS 2.1 parser and selector.
- simplecss#39: Added support for parsing
@font-face.
Druid
Druid is a GUI library which was a predecessor to Xilem, and an ancestor of Masonry.
- druid#2410: Updated to Piet 0.7, which is going to be the final Piet version compatible with Druid.
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.