2025-01-17

FOSS 2D graphics editor written in Rust, Graphite, posts its year in review and preview of 2025
Graphite has come a long way in 2024. Read about the progress made and the plans for the upcoming year.
Prototyping in Rust
Programming is an iterative process - as much as we would like to come up with the perfect solution from the start, it rarely works that way. Good programs often start as quick prototypes. The bad ones stay prototypes, but the best ones evo…

2025-01-16

Improve Rust Compile Time by 108X
We started with a compilation time of 108 seconds for the matmul benchmarks, which was reduced to only 1 second after all the optimizations. The most effective optimization was the element-type generics swap, where we instantiated generic functions with predefined "faked" element types to reduce the amount of LLVM code generated. The second optimization also had a major impact, further reducing the compilation time by nearly 3×. This was achieved by using our comptime system instead of associated const generics to represent the matmul instruction sizes. Finally, the last optimization—also the simplest—was to reduce the LLVM optimization level to zero, which is particularly useful for debug builds, such as tests.

2025-01-15

Build a Database in Four Months with Rust and 647 Open-Source Dependencies
Building a database from scratch is often considered daunting. However, the Rust programming language and its open-source community have made it easier.
Async Rust is about concurrency, not (just) performance
TLDR: I think that the primary benefit of async/await is that it lets us concisely express complex concurrency; any (potential) performance improvements are just a second-order effect. We should thus judge async primarily based on how it simplifies our code, not how (or if) it makes the code faster.