skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
xgent-ai/skills105 installs

rust

Use when writing, reviewing, refactoring, testing or debugging Rust code. Covers ownership, errors, performance and Tokio async patterns.

How do I install this agent skill?

npx skills add https://github.com/xgent-ai/skills --skill rust
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill is a comprehensive reference for Rust development best practices. It correctly leverages common ecosystem tools (cargo, clippy, rustc) to assist with coding tasks. Because it grants the agent access to these tools to process user-provided code, it introduces a necessary but important surface for indirect prompt injection.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Rust Best Practices

Apply these guidelines when writing or reviewing Rust code.

Best Practices Reference

Before reviewing, familiarize yourself with the relevant chapters. Read ALL relevant chapters in the same turn in parallel. Reference these files when providing feedback:

Quick Reference

Borrowing & Ownership

  • Prefer &T over .clone() unless ownership transfer is required
  • Use &str over String, &[T] over Vec<T> in function parameters
  • Small Copy types (≤24 bytes) can be passed by value
  • Use Cow<'_, T> when ownership is ambiguous

Error Handling

  • Return Result<T, E> for fallible operations; avoid panic! in production
  • Never use unwrap()/expect() outside tests
  • Use thiserror for library errors, anyhow for binaries only
  • Prefer ? operator over match chains for error propagation

Performance

  • Always benchmark with --release flag
  • Run cargo clippy -- -D clippy::perf for performance hints
  • Avoid cloning in loops; use .iter() instead of .into_iter() for Copy types
  • Prefer iterators over manual loops; avoid intermediate .collect() calls

Linting

Run regularly: cargo clippy --all-targets --all-features --locked -- -D warnings

Key lints to watch:

  • redundant_clone - unnecessary cloning
  • large_enum_variant - oversized variants (consider boxing)
  • needless_collect - premature collection

Use #[expect(clippy::lint)] over #[allow(...)] with justification comment.

Testing

  • Name tests descriptively: process_should_return_error_when_input_empty()
  • One assertion per test when possible
  • Use doc tests (///) for public API examples
  • Consider cargo insta for snapshot testing generated output

Generics & Dispatch

  • Prefer generics (static dispatch) for performance-critical code
  • Use dyn Trait only when heterogeneous collections are needed
  • Box at API boundaries, not internally

Type State Pattern

Encode valid states in the type system to catch invalid operations at compile time:

struct Connection<State> { /* ... */ _state: PhantomData<State> }
struct Disconnected;
struct Connected;

impl Connection<Connected> {
    fn send(&self, data: &[u8]) { /* only connected can send */ }
}

Async (Tokio)

  • Never block an async thread: no std::thread::sleep, blocking I/O or heavy CPU work in async fn - use spawn_blocking
  • Never hold a lock across .await; std::sync::Mutex is cheaper unless the guard must cross one
  • Bound concurrency with buffer_unordered/Semaphore; use JoinSet to own and abort task groups
  • Prefer channels over shared state - mpsc (work queue), broadcast (fan-out), oneshot (reply), watch (latest value)
  • Put a timeout on every outbound call; handle shutdown via CancellationToken
  • async fn in traits (1.75+) for static dispatch; #[async_trait] only when you need dyn Trait
  • Instrument with tracing: #[instrument] on async fns, .instrument(span) on spawned tasks

Documentation

  • // comments explain why (safety, workarounds, design rationale)
  • /// doc comments explain what and how for public APIs
  • Every TODO needs a linked issue: // TODO(#42): ...
  • Enable #![deny(missing_docs)] for libraries

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/xgent-ai/skills/rust">View rust on skillZs</a>