async-task is one of the most complicated crates in the smol ecosystem. But, fundamentally, it’s just a future on the heap. | Continue reading
A common refrain is that threads can do everything that async/await can, but simpler. So why would anyone choose async/await? | Continue reading
smol just became a much easier choice to build web servers. smol is a small and fast asynchronous runtime written in Rust. It serves as an alternative to crates like tokio with a new architecture and greater user flexibility. However, tokio and crates like it are already well est … | Continue reading
We can’t let the Internet Archive do all of the work. I’ve recently been reading a lot about the Small Web lately. While I don’t think that we can get there 100 percent, I think it has some good ideas. One of those ideas is that we should set our sites up in a way to prevent link … | Continue reading
SCP-093 is an absolute masterwork. Here’s why. This essay is adapted from this comment on the SCP-093 discussion page, by me, in 2019. So, the audience of the post of more “people who are familiar with the SCP wiki” than the usual audience of this blog. Some time ago, I was tr … | Continue reading
Figure 1: Painting of a crab prepared to be eaten, surrounded by wine and bread. crab-painting.jpg was created by Jan Arkesteijn and is released under the CC0 1.0 Public Domain license. unsafe code is not only tricky to get right. It’s also tricky to track down when things go wro … | Continue reading
unsafe code is not only tricky to get right. It’s also tricky to track down when things go wrong. Here’s a question to ponder: do you think you are experienced enough at Rust to use unsafe code properly? If you asked me 24 hours ago, I would confidently say “yes, I am.” I would d … | Continue reading
What options are there other than GitHub? Oh boy, I sure do love contributing to open source software on the largest software forge in the world! I hope they haven’t started down the slow and painful process of enshittification by following vague, ill-defined industry trends! Wa … | Continue reading
I’ve set up a new system for Rust development work. I work on quite a few crates in the Rust ecosystem. Since I started taking Rust seriously back in 2021, I’ve been using the same laptop that I’ve used since high school. It’s actually a pretty beefy laptop, all things considered … | Continue reading
[futures] comes with many additional combinators that [smol] doesn’t have out of the box. We can rebuild them, better. Whew, it’s almost been a month since my last blogpost here. This was because I was spending time doing research and testing, and not because I lost the PGP key t … | Continue reading
In the eternal quest to rewrite everything in Rust, even the C standard library isn’t safe from carcinisation. Modern Rust programs are, for the most part, written mostly in Rust. For networking applications, the entire asynchronous stack is Rusty; no libuv in sight, only mio and … | Continue reading
There is a common sentiment I’ve seen over and over in the Rust community that I think is ignorant at best and harmful at worst. This blogpost is largely a response to this post by Matt Kline, but I’ve seen this kind of sentiment all over the Rust community. I’ve found that, in a … | Continue reading
The tree of robust software must be refreshed from time to time with the blood of breaking changes. smol is no exception. smol version 1.0 was originally released on September 7th, 2020. Since then, we’ve seen almost thirty new minor version bumps of Rust and a small handful of e … | Continue reading
Today I’m happy to officially announce a project that has been the culmination of about five months of work. This makes it probably the most involved programming project I’ve ever done, and I’m proud of the final result. The GUI ecosystem in Rust is still in a nascent stage. Ther … | Continue reading
This project has driven me to the brink, but we’re just about there now. We’re in the home stretch! Last time, we struggled to integrate text into [piet-cosmic-text] and therefore piet-hardware. This time, it all ends. We have six samples left to go by my count, so it’s time to g … | Continue reading
Whenever I’ve talked to someone else who writes a drawing interface like this, it seems like they always say text is the hardest part. But obviously, I’m built different, right? Last time, I integrated gradients more completely into my piet-hardware crate. Today, we’re moving ont … | Continue reading
It’s high time for some vector graphics. Last time, we set up our harnesses for piet rendering using our hardware-based backends and adjusted it for multisampling and scaling. Today, let’s focus on getting some more samples rendered. The next few samples exhibit line styling and … | Continue reading
Graphical User Interfaces (GUIs) are still a sore subject in Rust. The ecosystem is certainly better than when I started was a few years ago, with egui and iced providing successful models for GUI projects. However, I still think there are models to explore that are interesting a … | Continue reading
It’s an exciting time for GUI in Rust. There are now quite a few, well written windowing libraries in Rust. winit is the leader of the pack, with the best platform support and a newly merged keyboard support PR that positions it to become the dominant windowing system in the ecos … | Continue reading
I’d like to introduce unsend: a thread-unsafe runtime for thread-unsafe people. Most contemporary async runtimes are thread safe, as they are meant to be used in networking applications where multithreading is all but necessary. This kind of hardware parallelism improves the perf … | Continue reading