vizia
allsorts
Our great sponsors
vizia | allsorts | |
---|---|---|
9 | 10 | |
1,392 | 692 | |
3.7% | 2.5% | |
9.4 | 8.4 | |
5 days ago | 4 months ago | |
Rust | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
vizia
- Vizia: A declarative GUI library written in Rust
-
Looking for this. html + css rendering through wgpu.
All of these projects have in common that they use Taffy (the project that I work on!) for box-level layout (which currently gives them block, flexbox, and grid layout) , and are either using or planning to use cosmic-text for text/inline layout. This gives you a decent first approximation of web layout, but it's not perfect and there are major features like float, display: inline-block, position: static, box-sizing: content-box missing. Not to mention that none of these implementations currently resolve CSS selectors, so you are effectively limited to inline styles (if you're interested in something in that direction then you may be interested in https://github.com/vizia/vizia).
-
Ebou Released 🚀: A (mostly full featured) cross platform desktop Mastodon client written in Rust + Dioxus
Vizia is basically fine-grained reactivity with an Elmish twist, though I haven't used it, so I couldn't say how well it works.
- GUI development with Rust and GTK 4
-
XUL Layout has been removed from Firefox
There are a number of up-and-coming Rust-based frameworks in this niche:
- https://github.com/iced-rs/iced (probably the most usable today)
- https://github.com/vizia/vizia
- https://github.com/marc2332/freya
- https://github.com/linebender/xilem (currently very incomplete but exciting because it's from a team with a strong track record)
What is also exciting to me is that the Rust GUI ecosystem is in many cases building itself up with modular libraries. So while we have umpteen competing frameworks they are to a large degree all building and collaborating on the same foundations. For example, we have:
- https://github.com/rust-windowing/winit (cross-platform window creation)
- https://github.com/gfx-rs/wgpu (abstraction on top of vulkan/metal/dx12)
- https://github.com/linebender/vello (a canvas like imperative drawing API on top of wgpu)
- https://github.com/DioxusLabs/taffy (UI layout algorithms)
- https://github.com/pop-os/cosmic-text (text rendering and editing)
- https://github.com/AccessKit/accesskit (cross-platform accessibility APIs)
In many cases there a see https://blessed.rs/crates#section-graphics-subsection-gui for a more complete list of frameworks and foundational libraries)
- Declarative UI Programming in Rust for Native Applications
-
Cosmic Text: Pure Rust multi-line text handling
I don't think it's actually merged into Iced yet. It is merged into https://github.com/vizia/vizia though.
-
Rust GUI framework
Vizia
-
lightweight gui for rust
I have recently learned about https://github.com/vizia/vizia and it looks very promising to me
allsorts
- Cosmic Text: Pure Rust multi-line text handling
-
Is it conveninent to make cross-platform GUI softwares using Rust now?
But again you don't need to reinvent text layout from scratch (that's my discussion, BTW) if you use the platform's native text drawing facilities, like DirectWrite on Windows, or CoreText on macOS.
-
Getting a pointer to a field of an enum
All these layers of Cows create an extremely complex lifetime tree and it's actually not possible to factor out the complex parsing steps into functions because they depend on a lot of stuff. (trying to return an OutlineBuilder from a function would dangling reference about 3 different temporaries, for example. Obtaining the temporaries is part of the parsing step)
-
Rust's Option and Result. In Python.
machine learning, neural networks, image processing, cryptography (though it is getting better), font shaping/rendering (though it is getting better), CPU/software rendering (though it is getting better)
-
What's the project you're currently working on at your company as a Rust developer?
It can be used for the things you suggest but our driving use case is font parsing. The goal is to use it to generate the font parsing code in Allsorts, which is ultimately used in Prince.
-
Question: Expected webrender impact, or influence, on emacs redisplay
Use allsorts or rustbuzz for text shaping
- Text Rendering w/ HarfBuzz, FreeType and OpenGL
-
Text Rendering
Loader -> Allsorts
-
Speedy2D: Easy-to-use library for graphics, text, and input events
It's something I'd like to improve on in future -- are there any pure-Rust libraries you'd recommend for shaping? Allsorts looks quite promising.
- Ask HN: How do you use Rust at work?
What are some alternatives?
xilem - An experimental Rust native UI framework
rustybuzz - A complete harfbuzz's shaping algorithm port to Rust
cosmic-text - Pure Rust multi-line text handling
rust-harfbuzz - Rust bindings to HarfBuzz
floem - A native Rust UI library with fine-grained reactivity
pathfinder - A fast, practical GPU rasterizer for fonts and vector graphics
gtk-fortran - A GTK / Fortran binding
glium - Safe OpenGL wrapper for the Rust language.
Azul - Desktop GUI Framework
fontdue - The fastest font renderer in the world, written in pure rust.
blitz - High performance HTML and CSS renderer powered by WGPU
lingua-rs - The most accurate natural language detection library for Rust, suitable for short text and mixed-language text