Predrag Gruevski's Avatar

Predrag Gruevski

@predr.ag

Author of cargo-semver-checks & Trustfall // https://github.com/sponsors/obi1kenobi // https://predr.ag/blog // ex Principal Eng @Kensho // MIT alum // https://hachyderm.io/@predrag // not from around here πŸ‡²πŸ‡° // he-him

1,789
Followers
264
Following
544
Posts
04.05.2023
Joined
Posts Following

Latest posts by Predrag Gruevski @predr.ag

Preview
Fix incorrect rustdoc JSON representation of `#[doc(test(..))]` attrs. by obi1kenobi Β· Pull Request #153465 Β· rust-lang/rust Attributes like #[doc(test(attr(deny(rust_2018_idioms))))] are accidentally emitted without the final ]. Also, the #[doc(test(no_crate_inject))] attribute is mistakenly emitted as #[doc(no_crate_in...

I also fixed the rustdoc bug upstream!
github.com/rust-lang/ru...

08.03.2026 16:57 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Release v0.47.0 Β· obi1kenobi/cargo-semver-checks In this release 7 new lints Spotlight: Google Summer of Code This release also includes a workaround for a Rust 1.94 rustdoc bug that caused cargo-semver-checks to crash in certain projects. We c...

cargo-semver-checks v0.47 is live now ✨

Inside, you'll find:
- a workaround for a Rust 1.94 rustdoc bug that caused crashes in some projects
- 7 new lints

Happy SemVer Sunday!
github.com/obi1kenobi/c...

08.03.2026 16:36 πŸ‘ 13 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

When someone says β€žScientists do not want you to knowβ€œ you can dismiss everything from there on. Scientists want you to know. They are desperate that you know. They can’t shut up about what they found out and want you to know.

03.03.2026 12:10 πŸ‘ 9513 πŸ” 4128 πŸ’¬ 77 πŸ“Œ 165

Here's a tiny bit of hopium:

In 2024 we were planning on adding 160 GW of renewable energy to the grid by 2030.

As of the start of this year, we had added 100 GW and are planning on adding 220 GW more by 2030.

(In 2022 we planned for 60 GW in 2030. We hit that by the end of 2023)

03.03.2026 03:01 πŸ‘ 67 πŸ” 11 πŸ’¬ 1 πŸ“Œ 1

This is wild, nice find! I see why you describe it as a rustc bug.

26.02.2026 05:23 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

All good! Thank you!

26.02.2026 05:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

It would still be helpful to know the "what did the upstream crate have, and what changed to trigger the bug" though.

You've thought 1000x more about this than any of the cargo-semver-checks contributors. So things that are obvious to you are quite opaque to us, even with the playground link :/

26.02.2026 05:11 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I'd love some help from @radbuglet.bsky.social to help me understand this better. We definitely don't catch this now, but I'd like to fix that!

It'd be helpful to frame this as "here's code that existed initially, then X got added, and behold how that caused breakage."

26.02.2026 04:33 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Episode 2: The History of Cats on Ships by The Untitled History Podcast From as early as 7000 years before the common era, we have evidence suggesting cats served alongside humans on ships. This isn’t just in a civilian capacity. As long as there have been warships, cats ...

Important news!

I am delighted to announce the launch of my new podcast: The Untitled History Podcast.

It's me, and guests, falling down all the history rabbitholes you can imagine.

Please, please spread the word, subscribe and listen. Because... SHIPS CATS!! cms.megaphone.fm/channel/the-...

19.02.2026 17:57 πŸ‘ 550 πŸ” 235 πŸ’¬ 53 πŸ“Œ 30
Preview
RustConf 2026: Call for Proposals Join us in beautiful MontrΓ©al, Canada or online for 2+ days of excellent Rust programming language content, Rust training/workshops, an "UnConference"...

⏰️ 1 day left to submit a talk!

The #rustconf program is shaped by the Rust community β€” and the CFP closes tomorrow @ 11:59pm PST.

If you’ve been building, experimenting, debating, or refining how Rust is used in practice, this is your chance to put that work!

16.02.2026 00:35 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

ngl when I saw this, I thought espresso must be a new library for working with gRPC over HTTP2 via tonic...

11.02.2026 21:30 πŸ‘ 6 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Ugh, you're telling me that "great landing" and "good landing" are not `Ord`.

In retrospect this makes sense. This plane is clearly a float.

29.01.2026 03:36 πŸ‘ 13 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

A rare case of a great landing (you can reuse the airframe after landing) that wasn't necessarily also a good landing (you can walk away from the airframe after landing).

29.01.2026 02:38 πŸ‘ 34 πŸ” 7 πŸ’¬ 1 πŸ“Œ 0

Hey chat is it good when your security audit recommends this?

28.01.2026 18:24 πŸ‘ 205 πŸ” 56 πŸ’¬ 3 πŸ“Œ 3
Image from the Trail of Bits report showing the offending code associated with the second high-severity vulnerability. It includes an empty "else" branch with a "to-do" comment that reads: "TODO (eventually) reject if signature is missing"

Image from the Trail of Bits report showing the offending code associated with the second high-severity vulnerability. It includes an empty "else" branch with a "to-do" comment that reads: "TODO (eventually) reject if signature is missing"

Why was this code ever shipped?!

This is from the second vuln, where keys' signatures aren't checked before they're stored in the trusted key store.

Why would you ever ship a "TODO, actually validate signatures lol" in your secure messenger?!

28.01.2026 18:38 πŸ‘ 82 πŸ” 22 πŸ’¬ 4 πŸ“Œ 11

Folks, there's an impersonation scam on Discord (and possibly elsewhere) that uses tech people's names and photos to slide into your DMs.

If you get a friend request / DM from "me" out of the blue:
(1) it's almost certainly not me
(2) feel free to ping me here to check!

28.01.2026 18:47 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 1
Video thumbnail

There’s so much demand for a T that’s so fundamentally disappointing.

28.01.2026 14:20 πŸ‘ 32 πŸ” 7 πŸ’¬ 3 πŸ“Œ 1

Neat idea! Is there a way to make `cargo update` inside the project work nicely though, without updating the trip wire?

Asking because I have a weekly job to update deps, and I want to figure out how I can adopt this reasonably. Maybe have it `cargo update` then explicitly downgrade the trip wire?

26.01.2026 00:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

And in case you missed it, here's our annual recap and our plans for 2026, which should look somewhat different than the last few years!
bsky.app/profile/pred...

24.01.2026 16:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Release v0.46.0 Β· obi1kenobi/cargo-semver-checks In this release 45 new lints β€” our biggest release ever! Spotlight: Exponential growth continued β€” 2025 Year in Review ✨ This adorable animation was made by @dekirisu ✨ This release requires Rus...

cargo-semver-checks v0.46 was released earlier this week ✨

It comes with 45 *new* lints. Almost 20% of *all lints* are new in this release β€” this is wild!! Exponential growth, manifested.
github.com/obi1kenobi/c...

24.01.2026 16:15 πŸ‘ 5 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Yep. Only way to:
- have a dependency on Rust
- support multiple Rust versions
- retain any semblance of sanity for me

20.01.2026 20:27 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Very soon, just probably not the way you had in mind πŸ˜…

It'll be a runtime dependency!

20.01.2026 20:13 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Funny, that's also how to build cargo-semver-checks too.

Mastering that one technique seems to cover a lot of cases.

20.01.2026 20:04 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Rust's standard library on the GPU GPU code can now use Rust's standard library. We share the implementation approach and what this unlocks for GPU programming.

We are excited to announce that we can successfully use Rust's standard library from the GPU. This has never been done before.

www.vectorware.com/blog/rust-st...

Supporting Rust's standard library enables existing Rust code to work on the GPU and makes GPU programming feel normal.

20.01.2026 15:39 πŸ‘ 252 πŸ” 57 πŸ’¬ 4 πŸ“Œ 6

I just woke up from a nap and somehow while I was asleep, everyone on the bus has figured out we are not going to the right place

20.01.2026 01:57 πŸ‘ 21483 πŸ” 5120 πŸ’¬ 15 πŸ“Œ 3554

This is part of how cargo-semver-checks has been growing so quickly.

It's a lot of work to discover and formulate SemVer rules. It's fairly trivial for an LLM to take those detailed notes and write *deterministic* queries in the Trustfall query language, and back them up with tests.

20.01.2026 04:45 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
When is "this trait can be implemented" part of the trait's public API? A massive upgrade to cargo-semver-checks' analysis of sealed traits: smarter, faster, and more correct.

I'm thrilled it's still helpful!

You might also like this other post which has more of those same shenanigans:
predr.ag/blog/when-is...

17.01.2026 05:03 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I built but never open-sourced a Python equivalent of cargo-semver-checks too. What held me back was feeling like there was no funding interest for it, and that I wouldn't have cycles or willpower to maintain it in such an environment.

What you describe doesn't seem like a big stretch from there

14.01.2026 15:44 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

This is the same tech that backs cargo-semver-checks. It isn't specific to Rust or Python or any other fixed set of data sources or languages.

14.01.2026 14:55 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
How to Query (Almost) Everything Never debugging the same problem twice, thanks to cross-dataset queries with the Trustfall query engine

Curious about your use case!

I've built something not that dissimilar to what you're describing, and would be happy to chat about it more if useful:
predr.ag/blog/how-to-...

14.01.2026 14:53 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0