Unexpected inconsistency in records (codeblog.jonskeet.uk)
Show HN: My GPU Fan Saga – A DIY ATX Fan Controller (shafq.at)
Show HN: Cargo-pup – ArchUnit-style linting for rust
I’ve been working on cargo-pup, a Rust tool for defining and enforcing architectural rules in your codebase - like ArchUnit for Java, or Clippy, but for project-specific architecture constraints rather than linting.
It lets you write architectural assertions in Rust using a builder-style API. For example:
Enforce layering: "REST modules shouldn’t use SQL clients" Enforce consistency: "Types implementing MyTrait must be named MyTrait and live in Impl* modules"
Pup emits regular rustc lints (just like Clippy or cargo check) and runs either as a test or via a `cargo pup` CLI, the latter of which you can drop into your CI.
This is very early days! I work at Datadog, but this isn’t an official project — just something I built to explore what architectural linting might look like in Rust, and to scratch my own itch :)
Would love any feedback or questions!
Scott
No comments yet