|
| 1 | ++++ |
| 2 | +title = "Linebender in July 2025" |
| 3 | +authors = ["Daniel McNab"] |
| 4 | ++++ |
| 5 | + |
| 6 | +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](https://rust-lang.org). |
| 7 | + |
| 8 | +## Vello |
| 9 | + |
| 10 | +Vello is our GPU vector renderer. |
| 11 | +It can draw large 2D scenes with high performance, using GPU compute shaders for most of the work. |
| 12 | + |
| 13 | +<!-- TODO --> |
| 14 | +- [vello#...][]: |
| 15 | + |
| 16 | +This month's progress on the sparse strips renderers, a collaborative evolution of Vello, has been centered around applying SIMD <!-- TODO -->. |
| 17 | + |
| 18 | +<!-- TODO --> |
| 19 | +- [vello#...][]: |
| 20 | + |
| 21 | +Our [working roadmap](https://docs.google.com/document/d/1ZquH-53j2OedTbgEKCJBKTh4WLE11UveM10mNdnVARY/edit?tab=t.0#heading=h.j3duh9pgdm94) outlines the planned timeline for work on the renderers into next year. |
| 22 | + |
| 23 | +An integration of Vello as the backend for Servo's canvas rendering has landed in <!-- TODO --> (and also Vello CPU in <!-- TODO -->). |
| 24 | + |
| 25 | +<!-- TODO: Image of Canvas drawn with Vello? --> |
| 26 | + |
| 27 | +### Fearless SIMD |
| 28 | + |
| 29 | +TODO: A new blurb here? |
| 30 | + |
| 31 | +## Masonry |
| 32 | + |
| 33 | +Masonry is the widget system developed by Linebender. |
| 34 | +It provides a non-opinionated retained widget tree, designed as a base layer for high-level GUI frameworks. |
| 35 | + |
| 36 | +- [xilem#...][]: |
| 37 | +<!-- TODO --> |
| 38 | + |
| 39 | +<!-- <figure> |
| 40 | +
|
| 41 | +<img style="height: auto" width="1464" height="955" src="multiple_windows.png" alt="Three overlapping windows on a black background. The frontmost window is titled Second Window, has text displaying a count of 11, a plus button, and a minus button, stacked vertically. Behind it is First Window, which is the same with a count of 13. At the back is a window titled Multiple Windows, which shows a map from the aforementioned windows to their values above a textbox and Add button. The textbox contains the text Next Window."> |
| 42 | +
|
| 43 | +<figcaption> |
| 44 | +
|
| 45 | +As of [xilem#1038][] Masonry (and Xilem) support multiple windows. |
| 46 | +
|
| 47 | +</figcaption> |
| 48 | +</figure> --> |
| 49 | + |
| 50 | +## Xilem |
| 51 | + |
| 52 | +Xilem is our flagship GUI project, inspired by SwiftUI, which uses Masonry for its widgets. |
| 53 | +It lets you build user interfaces declaratively by composing lightweight views together, and will diff them to provide minimal updates to a retained layer. |
| 54 | +Our work on Placehero, which is the working name for our Mastodon client example, has inspired several significant architectural improvements in Xilem. |
| 55 | + |
| 56 | +- [xilem#...][]: |
| 57 | +<!-- TODO --> |
| 58 | + |
| 59 | +## Anymore |
| 60 | + |
| 61 | +We have factored a shared utility for use in both Xilem and Masonry... |
| 62 | +<!-- TODO --> |
| 63 | + |
| 64 | +## Parley |
| 65 | + |
| 66 | +Parley is a text layout library. |
| 67 | +It handles text layout, mostly at the level of line breaking and resolving glyph positions. |
| 68 | + |
| 69 | +- [parley#...][]: |
| 70 | + |
| 71 | +<!-- ## TODO: The other project news items? --> |
| 72 | + |
| 73 | +## Get Involved |
| 74 | + |
| 75 | +We welcome collaboration on any of our crates. |
| 76 | +This can include improving the documentation, implementing new features, improving our test coverage, or using them within your own code. |
| 77 | + |
| 78 | +We host an hour long office hours meeting each week where we discuss what's going on in our projects. |
| 79 | +We're also running a separate office hours time dedicated to the renderer collaboration, details also available at that link. |
| 80 | +See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-office-hours) for details. |
| 81 | + |
| 82 | +If you wish to discuss the Linebender project individually, Daniel is offering ["office hours" appointments](https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ32eQYJ9DtZ_wJaYNtT36YioETiloZDIdImFpBFRo5-XsqGzpikgkg47LPsiHhpiwiQ1orOwwW2), which are free to book. |
| 83 | +It really helps us to learn what aspects our users care about the most. |
| 84 | + |
| 85 | +<!-- [Fearless SIMD]: https://github.com/linebender/fearless_simd |
| 86 | +[#simd channel]: https://xi.zulipchat.com/#narrow/channel/514230-simd --> |
0 commit comments