flo_draw
Azul
flo_draw | Azul | |
---|---|---|
3 | 26 | |
99 | 5,816 | |
- | 0.4% | |
8.9 | 7.2 | |
about 1 month ago | 6 days ago | |
Rust | Rust | |
Apache License 2.0 | Mozilla Public 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.
flo_draw
-
Rust: State of GUI, December 2022 – KAS blog
I've been working a 2D rendering toolkit that increasingly looks to me like it probably deserves a mention on these lists: https://github.com/logicalshift/flo_draw (but I'm not on Reddit...). Layers, vector sprites, dynamic textures and a streaming API that fits well with 'reactive' designs are amongst the features that make it stand out from what else is out there. It's super simple to get going too.
Started life as a rendering layer for FlowBetween so I could put in whatever looked like it was 'winning' later on but wound up writing my own renderer as there wasn't anything quite there yet. Still has that design so another unique thing is that it's possible to use the same API with whatever rendering layer you want.
Speaking of FlowBetween, one thing I have wanted to do for ages is to get rid of the platform-specific GUIs and use something universal. It should be easy because FlowBetween sends straightforward instructions to an independent GUI layer, but I keep bouncing off for a few reasons:
- it's a big ole task so I definitely want to pick something that's stable and also lets me hedge my bets in terms of being easy to migrate away from
-
Genuary 2022: Generative Code Art Prompts for a Month
If Rust's your language, I wrote a library that should be pretty good at 2D things: https://github.com/logicalshift/flo_draw - I wrote it while working on another project (FlowBetween) where I found debugging would be easier if I could just render something on-screen but rendering stuff on screen always required a ridiculous amount of setup.
It has some nice options for feeding its own output back into itself as it uses streams rather than callbacks so it's quite good for procedural rendering type tasks (the 'Wibble' example is a good place to start with that)
-
Inkscape 1.1.1 Is Released
I've been working on one for a while now that's very slowly coming together: https://github.com/logicalshift/flowbetween if you're interested.
I've been building out some backend stuff lately so there's a bunch of new features waiting to go in. https://github.com/Logicalshift/flo_draw has some demonstrations of the sort of procedural animation features I'm planning on adding, for instance.
Azul
-
AvaloniaUI: Create Multi-Platform Apps with .NET
Not sure what you mean but WebRender powers Firefox which definitely works on the desktop.
You can use it to build desktop UI frameworks - see for example https://azul.rs/
-
Servo, the parallel browser engine written in Rust
I'd been wanting to see this, preferably with JS being optional, and just allowing direct DOM access.
I initially thought this was what Azul was, but it's only just using Servo's WebRender compositor, and rolls its own CSS parser, DOM, and layout engine, so it doesn't benefit from most of the work done on Servo, and supports less CSS features.
https://github.com/fschutt/azul
-
Is RUST a good choice for building web browsers?
Both Servo and Fifefox make use of webrender, which is an awesome piece of tech and is well suited to render a web page. Some GUI projects attempted to use webrender directly as well, like Azul and moxie-native
-
Digital Audio Workstation Front End Development Struggles
> But no one is saying, "Hey I have a CSS 2.1 compliant rasterizer and compositor that you can use in your C++ or Rust environment!" are they?
There’s actually quite a lot of interesting work going on in that general space, has been in various forms for some years. A couple that immediately spring to mind:
• Azul <https://azul.rs/> builds on WebRender, as used in Firefox. I haven’t looked at it for a few years, but it looks to have grown quite interesting now.
• Blitz <https://github.com/DioxusLabs/blitz> is based on from-scratch implementations of CSS layout and rendering, and wgpu rendering. It’s not usable yet, but is a very interesting concept. If one happens to be familiar with React Native: it’s kinda like that, or React Native Web.
-
XUL Layout has been removed from Firefox
Azul[1] was my solution for that, it was based on WebRender. I didn't get around to finish it in 2019, but I will work on it this year, maybe I'll get it to be mature enough to post it here.
> wide portability (at least Windoze, Linux, MacOS, iOS, Android, embedded: Azul is Windows-Linux-Mac only, don't underestimate the effort to properly port something to a new platform
> "though a Vulkan-based renderer can be made to run pretty much anywhere": WebRender is OpenGL + using software rendering as a fallback
> a permissive open source license: MPL-2.0
> a C interface/wrap to allow a wide programming language binding support: yes
> and an easily extensible and themable set of basic widgets: also yes
[1] https://azul.rs/
-
Rust GUI framework
There is Iced which is used by system76 in Pop!_OS, Druid [DISCONTINUED], GTK-rs, Relm, Azul and Tauri. Personally I would use Tauri for its speed using the OS's native web render, documentation of use with things such as Sveltekit and the ability to make UI's using JS, CSS and HTML. Tauri similarly to Electron whilst being far faster. But its up to personal preference really. There aren't any solid "go to" options at the moment.
-
Servo 2023 Roadmap
Sounds like you may be interested in azul not exactly servo based but on projects that originate from servo. Also this is not a typical WebView, for example it does not use HTML but uses DOM to define it's UI, and there is no JS engine in there.
-
Help with webrender.
Azul uses webrender. But your "glue" program is like half the web browser. You also need a vector graphics library to render websites. Webrender only does boxes, but not complex SVG paths. Once the plan was to use pathfinder, but mozilla fired the dev and they still using an old version of chromium's skia for that.
-
Rust: State of GUI, December 2022 – KAS blog
One day I'll get around to finish my library Azul [1]. Hopefully.
[1] https://azul.rs/
-
Pure Rust GUI Landscape
azul
What are some alternatives?
thorvg - Thor Vector Graphics is a lightweight portable library used for drawing vector-based scenes and animations including SVG and Lottie. It can be freely utilized across various software platforms and applications to visualize graphical contents.
conrod - An easy-to-use, 2D GUI library written entirely in Rust.
inkscape
wxRust - A Rust binding of the wxWidgets cross platform toolkit.
rlottie - A platform independent standalone library that plays Lottie Animation.
gtk - DEPRECATED, use https://github.com/gtk-rs/gtk3-rs repository instead!
flowbetween - Tool for creating animations
orbtk - The Rust UI-Toolkit.
wxRust2 - re-exploration Rust binding to wx
Native Windows GUI - A light windows GUI toolkit for rust
inkscape-open-symbols - Open source SVG symbol sets that can be used as Inkscape symbols
relm - Idiomatic, GTK+-based, GUI library, inspired by Elm, written in Rust