frus 0.1.0, the first release
The first tagged release: a point in the history that can be cited, cloned and diffed. 277 milestones went into it. It is not an API commitment: nothing here is stable yet, and the public surface will move.
Platforms
- Desktop (Windows, Linux, macOS) on winit and wgpu: the clipboard, screen readers through AccessKit, live reload while developing.
- Android: a native activity, Vulkan, a real IME with composition and swipe typing, window insets and the full lifecycle, checked on a physical device.
- Web (wasm and WebGPU): rendering, input, animation, subscriptions, and asynchronous
effects,
fetchincluded.
The application model
An application is update and view. update is pure and synchronous, every effect goes
through a Command, and every long-lived stream through a Subscription. That is what lets 717
tests run with no GPU and no window. A single frus::main! declaration generates the desktop,
Android and web entry points, and an application declares one dependency, frus.
Rendering, layout and widgets
A wgpu renderer draws rounded rectangles, borders, shadows, gradients, vector paths, images, clips and layers. Layout is flexbox and grid over taffy, and text is shaped by cosmic-text, bidirectional scripts included. Around 80 widget modules ship: text fields, data tables, an editable grid, charts, date and time pickers, a kanban board, trees, toasts, modals and drawers. Every one is themed from a Material 3 colour scheme, and every style can be overridden.
Around them
Fluent translations with right-to-left layout, a semantics tree for screen readers, and
frus-test for headless rendering and golden images (87 at the time).
Not yet
Nothing is on crates.io, the web has no clipboard or accessibility yet, and iOS compiles but does not run.
