Agent Skills: Cargo & Ecosystem Skill

Master Cargo, testing, and Rust development tools

cargorusttestingrust-developmentdependency-management
developmentID: pluginagentmarketplace/custom-plugin-rust/cargo-ecosystem

Skill Files

Browse the full folder contents for cargo-ecosystem.

Download Skill

Loading file tree…

skills/cargo-ecosystem/SKILL.md

Skill Metadata

Name
cargo-ecosystem
Description
Master Cargo, testing, and Rust development tools

Cargo & Ecosystem Skill

Master Rust's build system, package manager, and development tools.

Quick Start

Essential Commands

# Project management
cargo new my_project          # Create binary project
cargo new my_lib --lib        # Create library project
cargo init                    # Initialize in existing dir

# Build & Run
cargo build                   # Debug build
cargo build --release         # Optimized build
cargo run                     # Build and run
cargo run --release           # Optimized run

# Testing
cargo test                    # Run all tests
cargo test test_name          # Run specific test
cargo test -- --nocapture     # Show output

# Quality
cargo fmt                     # Format code
cargo clippy                  # Lint code
cargo doc --open              # Generate docs

Cargo.toml Configuration

[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
authors = ["You <you@example.com>"]
description = "A sample application"
license = "MIT"
repository = "https://github.com/you/my-app"

[dependencies]
tokio = { version = "1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
thiserror = "1.0"

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
proptest = "1.0"

[profile.release]
lto = true
codegen-units = 1
opt-level = 3

[[bin]]
name = "my-app"
path = "src/main.rs"

[[bench]]
name = "my_benchmark"
harness = false

Testing

Unit Tests

pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_add() {
        assert_eq!(add(2, 2), 4);
    }

    #[test]
    #[should_panic(expected = "overflow")]
    fn test_panic() {
        // Expected to panic
    }

    #[test]
    #[ignore]
    fn slow_test() {
        // Run with: cargo test -- --ignored
    }
}

Integration Tests

// tests/integration_test.rs
use my_crate::public_function;

#[test]
fn test_public_api() {
    assert!(public_function().is_ok());
}

Benchmarks

// benches/my_benchmark.rs
use criterion::{criterion_group, criterion_main, Criterion};

fn benchmark(c: &mut Criterion) {
    c.bench_function("my_function", |b| {
        b.iter(|| my_function())
    });
}

criterion_group!(benches, benchmark);
criterion_main!(benches);

Development Tools

Code Quality

# Install components
rustup component add rustfmt clippy

# Format
cargo fmt
cargo fmt -- --check  # CI check

# Lint
cargo clippy
cargo clippy -- -D warnings  # Strict mode
cargo clippy --fix           # Auto-fix

Recommended Tools

# Install useful tools
cargo install cargo-watch     # Auto-rebuild
cargo install cargo-edit      # cargo add/rm
cargo install cargo-nextest   # Fast parallel tests
cargo install cargo-audit     # Security check
cargo install cargo-bloat     # Binary size analysis

rustfmt.toml

edition = "2021"
max_width = 100
use_small_heuristics = "Max"
tab_spaces = 4

.cargo/config.toml

[alias]
t = "test"
c = "clippy"
b = "build --release"

[build]
rustflags = ["-D", "warnings"]

Workspaces

# Root Cargo.toml
[workspace]
members = [
    "core",
    "cli",
    "server",
]

[workspace.dependencies]
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }

Resources