#prog #itsec #rust #article
Bugs Rust Won't Catch
Bugs Rust Won't Catch
In April 2026, Canonical disclosed 44 CVEs in uutils, the Rust reimplementation of GNU coreutils that ships by default since 25.10. Most of them came out of an external audit commissioned ahead of the 26.04 LTS.
I read through the list and thought there’s a lot to learn from it.
What’s notable is that all of these bugs landed in a production Rust codebase, written by people who knew what they were doing, and none of them were caught by the borrow checker, clippy lints, or cargo audit.
<...>
If you write systems code in Rust, this is the most concentrated look at where Rust’s safety ends that you’ll likely find anywhere right now.
❤4🥰2🍌1
#prog #rust #cpp #article
How (and why) we rewrote our production C++ frontend infrastructure in Rust
"Фронтенд" в данном случае означает прокси-сервер, если что.
How (and why) we rewrote our production C++ frontend infrastructure in Rust
"Фронтенд" в данном случае означает прокси-сервер, если что.
“Should we convert our _ code to Rust?” is a question that comes up a lot. And a lot of the time the right answer is a pretty firm, “No.” So I thought it might be beneficial (and hopefully interesting) to walk through a case where the code involved was incredibly you-cannot-fuck-this-up business-critical and when we asked that question about it, we came back with a yes. Here’s what it was, how we got to that answer, and what we did about it.
The bottom line is that C++ has caused more than a few situations where we wanted to do something or add a feature and it’s just like… that’s a cool idea, but it’s just not worth the uphill battle against the language. And it was to the point where any change carries the risk of unforeseen consequences.
👍1🥰1😁1
#prog #rust #article
stable specialization in Rust
TL;DR: Iterator::fuse возвращает адаптер, который на вызовах
stable specialization in Rust
TL;DR: Iterator::fuse возвращает адаптер, который на вызовах
.next() после возврата None продолжает возвращать None. Однако для типов, реализующих FusedIterator (то есть тех, кто уже обещает данное поведение), этот адаптер не отслеживает вызовы и просто вызывает .next() у нижележащего типа напрямую. Можно реализовать FusedIterator для своего типа, сделав её условной по предикату, который мы хотим проверить специализацией (например, реализует ли тип Send), и в реализации не соблюсти этот контракт. Тогда можно вызвать на этом типе, обёрнутом в Fuse, метод next() два раза, проверить, сколько раз next() был вызван реально, и тем самым получить ответ на предикат.doc.rust-lang.org
Iterator in std::iter - Rust
A trait for dealing with iterators.
🤔6😭6👍3😁2❤1
#prog #rust #article
Rust Debugging Progress Report May 2026
О том, как (постепенно) улучшается ситуация с использованием LLDB для Rust
Rust Debugging Progress Report May 2026
О том, как (постепенно) улучшается ситуация с использованием LLDB для Rust
👍5❤1
#prog #rust #rustasync #article
Async Rust never left the MVP state
Заголовок кликбейтный, да. Рассказывается о недостатках текущей кодогенерации машин состояний для async-функций и async-блоков, причём недостатках вполне устранимых
Async Rust never left the MVP state
Заголовок кликбейтный, да. Рассказывается о недостатках текущей кодогенерации машин состояний для async-функций и async-блоков, причём недостатках вполне устранимых
tweedegolf.nl
Async Rust never left the MVP state — Tweede golf
I've previously explained async bloat and some work-arounds for it, but would much prefer to solve the issue at the root, in the compiler. I've submitted a Project Goal, and am looking for help to fund the effort.
👍5