๐ŸŽฏ

coding-guidelines

๐ŸŽฏSkill

from actionbook/rust-skills

VibeIndex|
What it does

Provides comprehensive Rust coding guidelines covering naming conventions, best practices, error handling, memory management, concurrency, and code style recommendations.

๐Ÿ“ฆ

Part of

actionbook/rust-skills(35 items)

coding-guidelines

Installation

Quick InstallInstall with npx
npx skills add ZhangHanDong/rust-skills
CargoRun with Cargo (Rust)
cargo install cowork
git cloneClone repository
git clone https://github.com/ZhangHanDong/rust-skills.git
Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add ZhangHanDong/rust-skills
๐Ÿ“– Extracted from docs: actionbook/rust-skills
17Installs
665
-
AddedFeb 4, 2026

Skill Details

SKILL.md

"Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code style, best practice, P.NAM, G.FMT, code review, naming convention, variable naming, function naming, type naming, ๅ‘ฝๅ่ง„่Œƒ, ไปฃ็ ้ฃŽๆ ผ, ๆ ผๅผๅŒ–, ๆœ€ไฝณๅฎž่ทต, ไปฃ็ ๅฎกๆŸฅ, ๆ€Žไนˆๅ‘ฝๅ"

Overview

# Rust Coding Guidelines (50 Core Rules)

Naming (Rust-Specific)

| Rule | Guideline |

|------|-----------|

| No get_ prefix | fn name() not fn get_name() |

| Iterator convention | iter() / iter_mut() / into_iter() |

| Conversion naming | as_ (cheap &), to_ (expensive), into_ (ownership) |

| Static var prefix | G_CONFIG for static, no prefix for const |

Data Types

| Rule | Guideline |

|------|-----------|

| Use newtypes | struct Email(String) for domain semantics |

| Prefer slice patterns | if let [first, .., last] = slice |

| Pre-allocate | Vec::with_capacity(), String::with_capacity() |

| Avoid Vec abuse | Use arrays for fixed sizes |

Strings

| Rule | Guideline |

|------|-----------|

| Prefer bytes | s.bytes() over s.chars() when ASCII |

| Use Cow | When might modify borrowed data |

| Use format! | Over string concatenation with + |

| Avoid nested iteration | contains() on string is O(n*m) |

Error Handling

| Rule | Guideline |

|------|-----------|

| Use ? propagation | Not try!() macro |

| expect() over unwrap() | When value guaranteed |

| Assertions for invariants | assert! at function entry |

Memory

| Rule | Guideline |

|------|-----------|

| Meaningful lifetimes | 'src, 'ctx not just 'a |

| try_borrow() for RefCell | Avoid panic |

| Shadowing for transformation | let x = x.parse()? |

Concurrency

| Rule | Guideline |

|------|-----------|

| Identify lock ordering | Prevent deadlocks |

| Atomics for primitives | Not Mutex for bool/usize |

| Choose memory order carefully | Relaxed/Acquire/Release/SeqCst |

Async

| Rule | Guideline |

|------|-----------|

| Sync for CPU-bound | Async is for I/O |

| Don't hold locks across await | Use scoped guards |

Macros

| Rule | Guideline |

|------|-----------|

| Avoid unless necessary | Prefer functions/generics |

| Follow Rust syntax | Macro input should look like Rust |

Deprecated โ†’ Better

| Deprecated | Better | Since |

|------------|--------|-------|

| lazy_static! | std::sync::OnceLock | 1.70 |

| once_cell::Lazy | std::sync::LazyLock | 1.80 |

| std::sync::mpsc | crossbeam::channel | - |

| std::sync::Mutex | parking_lot::Mutex | - |

| failure/error-chain | thiserror/anyhow | - |

| try!() | ? operator | 2018 |

Quick Reference

```

Naming: snake_case (fn/var), CamelCase (type), SCREAMING_CASE (const)

Format: rustfmt (just use it)

Docs: /// for public items, //! for module docs

Lint: #![warn(clippy::all)]

```

Claude knows Rust conventions well. These are the non-obvious Rust-specific rules.

More from this repository10

๐Ÿช
actionbook-rust-skills๐ŸชMarketplace

Comprehensive Rust development assistant with meta-question routing, coding guidelines, version queries, and ecosystem support

๐ŸŽฏ
rust-refactor-helper๐ŸŽฏSkill

Performs safe Rust refactoring by analyzing symbol references, dependencies, and potential impacts using Language Server Protocol (LSP) operations.

๐ŸŽฏ
m05-type-driven๐ŸŽฏSkill

Enforces compile-time type safety by preventing invalid states through type-level design techniques like newtypes, type states, and phantom types.

๐ŸŽฏ
m09-domain๐ŸŽฏSkill

Guides domain modeling in Rust by helping identify entities, value objects, aggregates, and their ownership patterns with domain-driven design principles.

๐ŸŽฏ
m02-resource๐ŸŽฏSkill

Guides developers in selecting the right smart pointer and resource management strategy based on ownership, thread safety, and design constraints.

๐ŸŽฏ
rust-learner๐ŸŽฏSkill

Retrieves and provides comprehensive Rust and crate information, including versions, features, documentation, and changelogs from authoritative sources.

๐ŸŽฏ
m11-ecosystem๐ŸŽฏSkill

Guides Rust developers in selecting, integrating, and managing ecosystem dependencies with best practices and strategic decision-making.

๐ŸŽฏ
rust-trait-explorer๐ŸŽฏSkill

Explores Rust trait implementations, revealing which types implement specific traits and their implementation details using LSP.

๐ŸŽฏ
rust-call-graph๐ŸŽฏSkill

Generates and visualizes Rust function call graphs using LSP, revealing function relationships and call hierarchies.

๐ŸŽฏ
m12-lifecycle๐ŸŽฏSkill

Guides resource lifecycle design by analyzing creation, usage, cleanup strategies, and ownership patterns for efficient and safe resource management in Rust.