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.
raphlinus
-
Moving from Rust to C++
That's surprising, given the legendary sense of humor of the C++ community.
-
Announcing Bezier-rs: computational geometry algorithms for Bézier paths (seeking code review and boolean ops help)
I have some ideas on how to do boolean ops, some of which is written up in a blog post issue, and for which I have some code locally. In particular, the parabola estimate seems much more efficient than the usual fat line approach. I also have a sketch of quadratic/quadratic intersection in kurbo#230.
-
The Beauty of Bézier Curves
I am. It is relevant to the topic, and I cite it in the (now two year old) outline for the blog post I intend to write on the topic[1].
[1]: https://github.com/raphlinus/raphlinus.github.io/issues/40
-
Raph’s reflections and wishes for 2023
I rewrote that paragraph, as I realize it comes across too contentious. Thanks all for the feedback!
-
Rust GUI library for video playback?
To do video properly requires integration with the platform compositor. This is a fiendishly difficult problem, and I know of no serious effort to solve it. I have an outline of a blog post on the topic, and hope to publish it before too long.
-
Parallel curves of cubic Béziers
I am working on this problem too, and have an issue on my blog with an outline of the writeup. Stay tuned!
-
The Toxic Culture of Rejection in Computer Science
> PS, is your monoid work online, is it this https://arxiv.org/abs/2205.11659 ? I'm interested in monoids on GPUs.
Yes, the draft is on arXiv, and I have a blog post in the pipeline[1] explaining it to a more general audience.
And thanks for the other advice, I'll consider it!
[1] https://github.com/raphlinus/raphlinus.github.io/issues/66
-
Druid app for public transport data
The new xilem async architecture is designed to integrate much more finely with async. I have an outline of a blog post in the queue but am juggling a lot of things right now. Expect to see some updates, but not super soon.
-
Bevy and Dioxus are collaborating on stretch2: a revived UI layout algorithm
This is a hard problem and one of the hardest parts is figuring out scope. I have an upcoming blog post which will touch on some of the issues. In any case I'd love to see some progress on larger ecosystem collaboration.
-
Removing characters from strings faster with AVX-512
The short answer is no, but the long answer is that this is a very complex tradeoff space. Going forward, we may see more of these types of tasks moving to GPU, but for the moment it is generally not a good choice.
The GPU is incredible at raw throughput, and this particular problem can actually implemented fairly straightforwardly (it's a stream compaction, which in turn can be expressed in terms of prefix sum). However, where the GPU absolutely falls down is when you want to interleave CPU and GPU computations. To give round numbers, the roundtrip latency is on the order of 100µs, and even aside from that, the memcpy back and forth between host and device memory might actually be slower than just solving the problem on the CPU. So you only win when the strings are very large, again using round numbers about a megabyte.
Things change if you are able to pipeline a lot of useful computation on the GPU. This is an area of active research (including my own). Aaron Hsu has been doing groundbreaking work implementing an entire compiler on the GPU, and there's more recent work[1], implemented in Futhark, that suggests that that this approach is promising.
I have a paper in the pipeline that includes an extraordinarily high performance (~12G elements/s) GPU implementation of the parentheses matching problem, which is the heart of parsing. If anyone would like to review a draft and provide comments, please add a comment to the GitHub issue[2] I'm using to track this. It's due very soon and I'm on a tight timeline to get all the measurements done, so actionable suggestions on how to improve the text would be most welcome.
[1]: https://theses.liacs.nl/pdf/2020-2021-VoetterRobin.pdf
[2]: https://github.com/raphlinus/raphlinus.github.io/issues/66#i...
blitz
-
Deno in 2023
Have you talked to the Dioxus people recently?
They're working on a project called Dioxus Blitz; from what I'm told, they're trying to implement a minimal browser target, that provides some basic DOM-like features and renders with wgpu.
It's not exactly what you're hoping for, but you might find common ground.
https://github.com/DioxusLabs/blitz
(Also, the Linebender project is working on Masonry, with FFI as a medium-term goal.)
-
If the native speed DOM/Web API for Rust becomes a reality, would you be willing to build your web apps with Rust and HTML/CSS?
Your proposal sounds very similar to what the Dioxus folks are doing on Blitz, which is using HTML/CSS as the languages but doing native rendering. WebF seems much further along, and I know they've been exploring other rendering engines, so it may be an interesting conversation for you to have with them.
-
Looking for this. html + css rendering through wgpu.
Others have already mentioned inlyne and blitz, however given that you're interested in combining web UI with game/wgpu rendering you may be more interested in bevy_ui (and the higher level APIs like bevy_ui_dsl and belly that sit on top of this). Bevy UI is working on a HTML model and is specifically designed to integrate with Bevy's main game renderer and other infrastructure. It's worth noting that a 0.11 release of Bevy of due in next few days, and that UI is going to be a strong focus of the 0.12 release cycle: which should lead to significant development of bevy_ui, and either a doubling down on the "HTML-like UI" approach or a pivot to a new approach.
-
Awesome presentation of Dioxus - cross-platform GUI framework at RustNL
Here is an example: https://github.com/DioxusLabs/blitz/blob/master/examples/buttons.rs
-
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.
-
[Media] Version 0.3 of Inlyne - An interactive markdown renderer written entirely in Rust
You may also be interested in https://github.com/DioxusLabs/blitz which aims to be a full HTML+CSS renderer on top of wgpu (but is currently not nearly as complete as inlyne).
-
What is the most fully-featured rust frontend framework?
If you are focused on performance we are working on a native renderer for Dioxus called Blitz. It is very incomplete right now, but in the future it will be much more performant than the current webview based approach.
- GitHub Accelerator: our first cohort and what's next
-
Taffy 0.3: UI layout in Rust, now with css-grid!
There hasn't been too much progress on Blitz in the last few weeks (it will come), but there is now a new project Freya which is using a Dioxus frontend and rendering with Skia. That's currently using it's own layout system instead of Taffy though.
-
Tauri vs Iced vs egui: Rust GUI framework performance comparison (including startup time, input lag, resize tests)
The main desktop renderer for Dioxus uses wry (the webview tauri uses internally), so the startup time will likely be similar. We are working on a native renderer called blitz which should improve this, but development is still early
What are some alternatives?
sprawl - A high performance Rust-powered layout library [Moved to: https://github.com/DioxusLabs/taffy]
vizia - A declarative GUI library written in Rust
morphorm - A UI layout engine written in Rust
dioxus - Fullstack GUI library for web, desktop, mobile, and more.
gtfs_manager - A GUI for viewing and editing GTFS data
freya - Native GUI library for 🦀 Rust powered by 🧬 Dioxus and 🎨 Skia.
Graphite - 2D raster & vector editor that melds traditional layers & tools with a modern node-based, non-destructive, procedural workflow.
taffy - A high performance rust-powered UI layout library
maplibre-rs - Experimental Maps for Web, Mobile and Desktop
ToobAmp - A set of high-quality guitar effect plugins for Raspberry Pi with specific support for PiPedal.
rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality
vello - An experimental GPU compute-centric 2D renderer.