What's everyone working on this week (3/2026)?

New week, new Rust! What are you folks up to?

1 Like

This is the 8th week replying to this post, and somehow the blazingly™ fast concurrent ordered map I was working on got 125 stars in one day O.O I was expecting like 10-20 lifetime stars since I am just an anon online :'D

EDIT: Also a lot of pretty big names in there, I saw some users whose crates I actually use a lot :'D . Thanks to everyone showing an interest in the project. Even though it was developed simply out of pure interest.

4 Likes

I am back at Raumklang - my room acoustics measurement project. After I got most of the basic features working I am thinking about a re-write or at least a big refactoring to improve the overall user experience before publishing the first release.

1 Like

I played around with the rayon library, parallelizing a Mandelbrot demo. For what it does, it has relatively few lines of code:

5 Likes

Rayon is great - easy to use and implementes a complex algorithm (work stealing).
One thing I find useful is to limit the max number of threads it sets up - so that it doesn't just grab all the cores...

I've used Mandelbrot in the past to compare different programming languages. C was the fastest language - but Rust and Zig were almost the same. Was hoping work stealing would make a difference for Rust - Mandelbrot is 'embarrassingly parallel', but the compute needed for different pixels is not the same...

1 Like

advanced-text-match: POC for offensive text matching I made in response to an LLM being used for this purpose (CW: deliberately misspelled slur used as a test case)

matrix-adsbot: A Matrix bot I made as a joke that serves "ads"

And I'm working on my main project which is a CMS/Webapp framework

1 Like

Love the sentence() test.

2 Likes

It was definitely very interesting :'D

I just submitted a PR to yoke after all that reading and thinking I did (on some other URLO threads, and offline) about proving that a type is covariant over a lifetime, even in the face of pathological macros, unsizing coercions, and deref coercions. The main tool I used (&raw const, whose operand is not a location where coercions occur) was stabilized in Rust 1.82, so I’m glad yoke’s MSRV is high enough.

I’ll be applying the same toolset to my own macros soon enough.

2 Likes

There is one point in the program I do not really understand from a performance perspective. The two main time-consuming calculations are the computation of the Mandelbrot iteration field (math.rs: get_iteration_field) and the computation of the focal point where to zoom in (focus_system.rs: new). The Mandelbrot iteration performs a maximum of 100 iterations per pixel, and the focus point system (11*11) = 121 computations per pixel. The Mandelbrot iteration consumes most of the time.

You said that it is possible to limit the number of threads Rayon can use. Is there, like in C++ / oneTBB, a method to find out how many cores are available? That would be interesting to reserve one core for a manually spawned thread, that is connected via a channel to process latent jobs, that can be distributed over several frames (like A* planning) or, in my case, the computation of the upcoming interest point, that I manually distributed over several frames (see focus_system.rs in try_improve).

The last thing missing for serious game parallelization in Rust is a binding/graphics API that supports deferred rendering contexts.

1 Like

In main.rs, what does the value 1e-13 depend on in

// Check if we need to transition out
                if radius < 1e-13 {

The 1e-13 threshold is given by the f64 resolution used in the complex number. If you go lower, you get visible position erasures visible in blocky pixels:

1 Like

I am working on a project that analyses network traffic logs to deetect illegal activity such as piracy and cyber attacks.

I was wondering if you could continue zooming much longer, but it doesn't seem possible with this implementation. Or do you think it can be extended by using f64 in some places where it now uses f32?

He ought to use the f128 type. It supports more resolution and its available in the nightly toolchain!

1 Like

If anyone is interested, I made an offline, high-precision branch that uses rug.

This crate is a bit tricky, as it requires a couple of non-Rust components. The best is to run it on a Linux server. The components to install in addition are listed in the source code documentation.

It is not the best implementation for the problem. They use perturbation theory to speed up the calculation. But as far as I know, it is the only implementation with autofocus. Anyway, once the video is finished, I can post a link.

Here is a shot from the early frames of the video.

2 Likes

Here is the final video: