Back

lucisqr.substack.com

Rust in 2025: Trends, Tools, and Controversies

9/26/2025Updated 2/21/2026
https://lucisqr.substack.com/p/rust-in-2025-trends-tools-and-controversies

The release of Wild Linker 0.6.0, a fast linker for Linux written in Rust, garnered attention (333 upvotes) for its bug fixes and new features like RISCV64 support. Users are excited about its potential to become a default in Rust’s toolchain. Additionally, the serde_core crate’s restructuring to improve compile times (536 upvotes) reflects ongoing efforts to address one of Rust’s pain points—slow builds. Community members emphasized the global energy savings from such optimizations, even if runtime performance isn’t affected. … ## Controversies and Pitfalls ### Supply Chain Security Concerns A major controversy erupted around supply chain security following the discovery of malicious crates on crates.io (378 upvotes). Users expressed alarm over disposable accounts and attack vectors, with one commenter urging for better defenses before state actors exploit these vulnerabilities. The consensus is that while Rust’s model relies on trust, blind dependency upgrades and sprawling dependency trees (e.g., with tokio) pose significant risks. In downvoted discussions (-42 score), some argued for abandoning centralized repositories like crates.io in favor of vetted libraries akin to C++ practices, though this was met with skepticism due to Rust’s distinct ecosystem dynamics. **Takeaway:** Audit your dependencies regularly using tools like cargo-audit. Minimize reliance on lesser-known crates and consider contributing to community efforts for crate auditing to bolster ecosystem security. ### Learning Curve and Syntax Frustrations Rust’s steep learning curve continues to frustrate newcomers, as seen in posts like “How to think in Rust?” (80 upvotes) and downvoted threads expressing intent to abandon Rust over partial borrowing limitations (0 score). Users struggle with intuitive construct selection and syntax complexity, especially around self-referential structures and async ecosystems. Downvoted opinions often suggest Rust isn’t suited for OOP patterns, with critics feeling punished by the borrow checker compared to languages like C# or Java. **Takeaway:** Focus on Rust’s type system to model problems effectively—adopt the mantra “make invalid states unrepresentable.” For OOP challenges, use tools like std::mem::take to manage partial borrows, and seek community resources like No Boilerplate on YouTube for mindset shifts. ### Tooling and Ecosystem Fragmentation Tooling pain points, particularly with doctests (102 upvotes), reveal gaps in IDE support and integration with cargo check or clippy, making documentation testing cumbersome. Async ecosystem fragmentation—debated in posts wishing for a unified runtime (0 score)—also frustrates developers who juggle tokio, async-std, and runtime-specific quirks. **Takeaway:** Work around doctest limitations by drafting code in dummy functions before copying to documentation. For async projects, standardize on a single runtime (e.g., tokio) early in development to avoid compatibility headaches, and follow Rust’s async working group updates for future unification efforts.

Related Pain Points6

Supply chain security vulnerabilities in crates.io ecosystem

8

Malicious crates have been discovered on crates.io, with concerns about disposable accounts and attack vectors. Developers worry that blind dependency upgrades and sprawling dependency trees (especially with tokio) pose significant security risks that could be exploited by state actors.

securityRustcrates.ioCargo+1

Fragmented async ecosystem with multiple competing runtimes

6

Developers struggle with async ecosystem fragmentation, needing to juggle multiple runtimes (tokio, async-std, etc.) with runtime-specific quirks and incompatibilities. There is no unified async runtime, creating compatibility headaches across projects.

ecosystemRusttokioasync-std

Steep learning curve and confusing syntax for newcomers

6

Rust's steep learning curve frustrates newcomers, with common complaints about complex syntax, difficulty with intuitive construct selection, self-referential structures, and the borrow checker. Among non-Rust users surveyed, 22% cited Rust as 'too difficult to learn'.

docsRust

Limited standard library support compared to established languages

5

While Rust's standard library is comprehensive, it lacks the breadth of library support found in more established languages like Python or JavaScript. This makes it difficult to find pre-built libraries or tools for tasks commonly handled in other languages.

ecosystemRust

Limited object-oriented programming support

5

Rust's support for object-oriented programming patterns is not as robust as languages like Python or Java, making it more challenging to write large, complex OOP applications. Developers struggle with OOP paradigms and feel constrained by the borrow checker.

architectureRust

Tooling gaps with doctests and IDE integration

4

Documentation testing with doctests is cumbersome due to gaps in IDE support and poor integration with cargo check and clippy. This creates friction in the development workflow for maintaining code examples in documentation.

dxRustCargoclippy