Rust-skills rust-learner

Rust learning and ecosystem tracking expert covering version updates, new features, RFC tracking, crate updates, best practice evolution, and learning resources.

install
source · Clone the upstream repo
git clone https://github.com/huiali/rust-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/huiali/rust-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.codex/skills/rust-learner" ~/.claude/skills/huiali-rust-skills-rust-learner && rm -rf "$T"
manifest: .codex/skills/rust-learner/SKILL.md
source content

Version Update Strategy

Stable Updates

# Check current version
rustc --version

# Update Rust
rustup update stable

# View changelog
rustup doc --changelog

When to Upgrade

ScenarioRecommendation
New projectUse latest stable
Production projectFollow 6-week cycle
Library projectConsider MSRV policy

MSRV (Minimum Supported Rust Version)

[package]
rust-version = "1.70"  # Declare minimum version

[dependencies]
# MSRV-sensitive dependencies require care
serde = { version = "1.0", default-features = false }

Solution Patterns

Pattern 1: Following Stable Releases

# Quarterly update routine
rustup update stable
cargo outdated
cargo audit
cargo test --all-features

# Read release notes
rustup doc --changelog

Pattern 2: Tracking Ecosystem Changes

# Check for breaking changes
cargo update --dry-run

# Security audit
cargo audit

# License check
cargo deny check licenses

# Check dependency tree
cargo tree

Pattern 3: Learning New Features

// Edition 2024 features

// Inline const (1.79+)
const fn compute() -> [u8; 32] {
    let mut arr = [0u8; 32];
    // compute at compile time
    arr
}

// Never type improvements (1.82+)
fn diverge() -> ! {
    panic!("never returns")
}

// Async fn in trait (1.75+)
trait Repository {
    async fn fetch(&self, id: u64) -> Result<Data, Error>;
}

Learning Path

Beginner → Advanced

Basics → Ownership, lifetimes, borrow checker
   ↓
Intermediate → Trait objects, generics, closures
   ↓
Concurrency → async/await, threads, channels
   ↓
Advanced → unsafe, FFI, performance optimization
   ↓
Expert → Macros, type system, design patterns

Information Sources

Official Channels

SourceContentFrequency
This Week in RustWeekly digest, RFCs, blogsWeekly
Rust BlogMajor releases, deep divesAs released
Rust RFCsDesign discussionsOngoing
Release NotesVersion changesEvery 6 weeks

Community Resources

ResourceContent
docs.rsDocumentation search
crates.ioPackage search
lib.rsFind alternative crates
Rust AnalyzerIDE plugin

Dependency Management

Regular Updates

# Check outdated dependencies
cargo outdated

# Update compatible versions
cargo update

# Update to latest (may break)
cargo upgrade

Security Audit

# Check for known vulnerabilities
cargo audit

# Check dependency licenses
cargo deny check licenses

# Analyze dependency tree
cargo tree -d  # Show duplicates

Workflow

Quarterly Checklist

Every 3 months:
- [ ] Upgrade to latest stable Rust
- [ ] Run cargo outdated
- [ ] Run cargo audit
- [ ] Check dependencies for breaking changes
- [ ] Evaluate new features worth adopting
- [ ] Update tooling (clippy, rustfmt)

Annual Checklist

Every year:
- [ ] Consider edition upgrade
- [ ] Refactor deprecated patterns
- [ ] Evaluate MSRV policy
- [ ] Update development toolchain
- [ ] Review architecture patterns

Learning Resources

Beginner

Intermediate

Advanced

Practice

Edition Update Strategy

EditionReleasedKey Features
2015Original-
2018Dec 2018Module system, NLL
2021Oct 2021Disjoint captures, IntoIterator
2024TBDGen blocks, async drop

Upgrading Editions

# Check if upgrade possible
cargo fix --edition

# Update Cargo.toml
# edition = "2024"

# Test thoroughly
cargo test --all-features

Review Checklist

When learning new Rust features:

  • Feature is stable (not experimental)
  • Understand the problem it solves
  • Know when NOT to use it
  • Aware of trade-offs
  • Tested in small project first
  • Read release notes thoroughly
  • Checked ecosystem adoption
  • Updated team documentation

Verification Commands

# Check Rust version
rustc --version
rustup show

# Update toolchain
rustup update

# Check outdated dependencies
cargo outdated

# Security audit
cargo audit

# License compliance
cargo deny check

# Check for deprecated features
cargo clippy -- -W deprecated

Common Pitfalls

1. Chasing Shiny Features

Symptom: Using unstable features in production

# ❌ Avoid: nightly features in production
#![feature(generic_associated_types)]

# ✅ Good: wait for stabilization
# Use stable alternatives

2. Ignoring MSRV

Symptom: Breaking downstream users

# ✅ Good: declare MSRV
[package]
rust-version = "1.70"

# Test against MSRV in CI
# cargo +1.70 test

3. Not Reading Release Notes

Symptom: Surprised by breaking changes

# ✅ Good: read before updating
rustup doc --changelog

# Check crate changelogs
cargo info <crate> --version <version>

Related Skills

  • rust-ecosystem - Crate selection and tools
  • rust-coding - Best practices and conventions
  • rust-performance - Performance improvements
  • rust-async - Async/await patterns
  • rust-error - Error handling evolution

Localized Reference

  • Chinese version: SKILL_ZH.md - 完整中文版本,包含所有内容