Skip to content
Agentmart
Submit a tool

rust-best-practices

Idiomatic Rust guide based on Apollo GraphQL's best practices handbook.

Skill by apollographql

IndexedMIT★ 125
Write a review

Chalk Labs

Need help deploying rust-best-practices?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/scott-fryxell-rust-best-practices

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Idiomatic Rust guide based on Apollo GraphQL's best practices handbook. Use when writing, reviewing, or refactoring Rust - ownership and borrowing decisions, Result error handling, performance, clippy, and tests.

Use cases: backend, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/rust-best-practices

Tools it pre-approves 9

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash(cargo:*)
  • Bash(rustc:*)
  • Bash(rustfmt:*)
  • Bash(clippy:*)
  • Read
  • Write
  • Edit
  • Glob
  • Grep

What's inside

Skill name
rust-best-practices
Description
Idiomatic Rust guide based on Apollo GraphQL's best practices handbook. Use when writing, reviewing, or refactoring Rust - ownership and borrowing decisions, Result error handling, performance, clippy, and tests.
License
MIT
Compatibility
Rust 1.70+, Cargo
Allowed tools
Bash(cargo:*), Bash(rustc:*), Bash(rustfmt:*), Bash(clippy:*), Read, Write, Edit, Glob, Grep
Metadata
author: apollographql · version: 1.1.0
Instructions
63 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves some shell commands

Files (6)

  • SKILL.md
  • chapter_01.md · references/
  • chapter_02.md · references/
  • chapter_03.md · references/
  • chapter_04.md · references/
  • chapter_05.md · references/

SKILL.md (first lines)

# Rust Best Practices

Apply these guidelines when writing or reviewing Rust code. Based on Apollo GraphQL's [Rust Best Practices Handbook](https://github.com/apollographql/rust-best-practices).

## Best Practices Reference

Before reviewing, familiarize yourself with Apollo's Rust best practices. Read ALL relevant chapters in the same turn in parallel. Reference these files when providing feedback:

- [Chapter 1 - Coding Styles and Idioms](references/chapter_01.md): Borrowing vs cloning, Copy trait, Option/Result handling, iterators, comments
- [Chapter 2 - Clippy and Linting](references/chapter_02.md): Clippy configuration, important lints, workspace lint setup
- [Chapter 3 - Performance Mindset](references/chapter_03.md): Profiling, avoiding redundant clones, stack vs heap, zero-cost abstractions
- [Chapter 4 - Error Handling](references/chapter_04.md): Result vs panic, thiserror vs anyhow, error hierarchies
- [Chapter 5 - Automated Testing](references/chapter_05.md): Test naming, one assertion per test, snapshot testing

Trimmed to the chapters that apply here. The only Rust in this workspace is
`work/realness/tracer`, a ~300-line WASM `cdylib` with no threads, no `unsafe`,
no trait objects, and no published rustdoc API. Apollo's chapters 6-9 (generics
and dispatch, type state, comments vs documentation, pointers and `Send`/`Sync`)
were dropped as inapplicable. Pull them from the
[upstream handbook](https://github.com/apollographql/rust-best-practices) if a
future crate needs them.

## 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 or less) 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

### Comments
- `//` comments explain *why* (safety, workarounds, design rationale)
- Every `TODO` needs a linked issue: `// TODO(#42): ...`

From scott-fryxell/brayness, MIT.

More from scott-fryxell/brayness

Compare and alternatives

    Featured in

    Signals

    Stars
    125
    Forks
    15
    Open issues
    0
    Last commit (this folder)
    Aug 9, 2026 (2 months ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    Version
    1.1.0
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from apollographql

    Done for you

    Rather not set it up yourself?

    Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

    See how we build AI agents →Read the case studies

    Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

    launches shipped
    50+
    launches shipped
    media placements
    500+
    media placements
    founders on every account
    2
    founders on every account

    Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

    Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

    Get rust-best-practices running in your business

    Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

    Goes to the Chalk Labs founders, not the newsletter. Privacy

    Need help deploying rust-best-practices?

    CallGet help
    Cite this page

    rust-best-practices skill. Agent Mart. https://agentmart.dev/skills/scott-fryxell-rust-best-practices (last updated 2026-10-24)