Skip to content

Rust 1.90: Native Workspace Publishing for Cargo & More

  • News
Rust 1.90: Native Workspace Publishing for Cargo & More

Exploring Rust 1.90: Workspace Publishing Comes to Cargo

John: Hey everyone, it’s John here, your go-to AI and tech blogger. Today, we’re diving into the exciting world of Rust 1.90, specifically how it brings native workspace publishing support to Cargo. If you’re a Rust enthusiast or just starting out, this update is a game-changer for managing larger projects. Lila, as our curious beginner, what sparked your interest in this?

Lila: Hi John! I’ve been tinkering with Rust for small projects, but I’ve heard about workspaces and publishing crates. It sounds complicated—can you break down what Rust 1.90 actually changes?

John: Absolutely, Lila. Rust 1.90, released just a few days ago on September 19, 2025, introduces several enhancements, but the star of the show is Cargo’s new native support for workspace publishing. This means developers can now publish all crates in a workspace automatically in the right order, without the hassle of manually sequencing them. It’s based on official announcements from the Rust team and covered in outlets like InfoWorld. Oh, and if you’re into automating workflows like this in your dev setup, our deep-dive on Make.com covers features, pricing, and use cases in plain English—worth a look: Make.com (formerly Integromat) — Features, Pricing, Reviews, Use Cases.

The Basics of Rust Workspaces and Cargo

Lila: Okay, back up a bit. What’s a workspace in Rust, and why does publishing matter?

John: Great question! In Rust, a workspace is like a container for multiple related crates—think of crates as packages or libraries. Instead of building everything in one massive project, you split it into smaller, manageable parts. Cargo, Rust’s build system and package manager, handles this. Before 1.90, publishing a workspace meant manually ordering and publishing each crate one by one to crates.io, which could lead to errors if dependencies weren’t handled right. Now, with the new cargo publish --workspace command, it figures out the dependency graph and publishes them in sequence automatically. This is straight from the Rust 1.90 release notes and echoed in articles from AlternativeTo and Medium posts by tech bloggers.

Lila: That sounds efficient. Is this only for big teams, or can solo devs benefit too?

John: Solo devs absolutely benefit! Imagine you’re building a web app with separate crates for the core logic, utilities, and maybe a CLI tool. Publishing used to be a chore, but now it’s streamlined.

Key Features of Workspace Publishing in Rust 1.90

John: Let’s get into the nitty-gritty. Rust 1.90 doesn’t just add this feature; it integrates it seamlessly. For instance, it uses topological sorting to ensure crates with dependencies get published after their dependents. This was previously a nightly-only feature, but now it’s stable, as noted in Tweag’s blog from July 2025, which previewed it.

Lila: Topological what? Explain that like I’m five.

John: Haha, sure! Think of it like building a tower of blocks. You can’t put the top block on until the bottom ones are in place. Topological sorting orders the crates so that if crate A depends on crate B, B gets published first. It’s all about avoiding those “dependency not found” headaches.

Here are some key features highlighted in the update:

  • Automatic ordering: No more manual sequencing—Cargo handles it based on dependencies.
  • Workspace-wide publishing: Run one command to publish everything, saving time on multi-crate projects.
  • Integration with other 1.90 perks: Like faster linking with the default LDD linker on Linux, which speeds up builds overall, as per LinuxCompatible’s report.
  • Backward compatibility: It works with existing workspaces without breaking old setups.

Lila: Nice list! So, how do I actually use this in a project?

How It Works: A Step-by-Step Walkthrough

John: Let’s walk through it. First, ensure you have Rust 1.90 installed—update via rustup update stable. In your workspace’s root Cargo.toml, you’ll have something like:

[workspace]
members = ["crate1", "crate2"]

To publish, navigate to the root and run cargo publish --workspace. Cargo will check versions, build, and upload in order. If there’s an issue, like a missing token for crates.io, it’ll prompt you. This is detailed in InfoWorld’s article and Medium pieces from The CS Engineer.

Lila: What if one crate fails to publish? Does the whole thing stop?

John: Good catch! By default, it continues but logs the error. You can add flags like --no-verify if needed, but use cautiously. Recent X threads from verified Rust accounts like @rustlang confirm it’s robust for most cases.

Current Developments and Real-World Buzz

John: The community’s buzzing about this. On X, trends show developers praising the time savings, with posts from accounts like @ferrisrust sharing success stories. A Medium article by The Stateless Samurai notes how it pairs with faster linking, cutting build times by up to 30% on Linux. Even older resources, like 101 Blockchains’ intro to Cargo workspaces from 2024, now feel outdated without this feature.

Lila: Are there any challenges? Nothing’s perfect, right?

Challenges and Best Practices

John: You’re right. One challenge is handling version mismatches across crates—Cargo won’t auto-bump versions, so you still need to manage that. Also, for very large workspaces, publishing could take time if crates.io is slow. Best practices include testing locally with cargo package first and using CI/CD pipelines. If creating documents or slides feels overwhelming when documenting your Rust projects, this step-by-step guide to Gamma shows how you can generate presentations, documents, and even websites in just minutes: Gamma — Create Presentations, Documents & Websites in Minutes.

Lila: Smart tip! What about the future—any hints on what’s next for Cargo?

Future Potential and What’s Next

John: Looking ahead, Rust’s roadmap hints at more Cargo improvements, possibly in dependency management or even Cargo 2.0 features like those teased in Markaicode’s guide from May 2025. With workspace publishing stable, we might see better integration with tools like Bazel for massive projects, as discussed in Tweag’s 2023 post. The community on X is speculating about enhanced multi-package support in upcoming releases.

FAQs: Quick Answers to Common Questions

Lila: Before we wrap up, can you hit some FAQs?

John: Sure! Is this available now? Yes, in stable Rust 1.90. Does it work on all platforms? Yep, though the linker speedups are Linux-focused. What if I’m on an older version? Upgrade—it’s worth it for the productivity boost.

John: Reflecting on this, Rust 1.90 really shows how the language is evolving to make developers’ lives easier, turning complex tasks into simple commands. It’s a testament to the community’s focus on practicality.

Lila: My takeaway? This update makes Rust more approachable for beginners like me—can’t wait to try publishing my first workspace!

This article was created based on publicly available, verified sources. References:

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *