memory-safety-optimization-patterns
Instructions for memory safety optimization patterns.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
priority: high
Memory Safety & Optimization Patterns
Zero-Copy
-
&stroverString,&[T]overVec<T>in function params -
Cow<T>for conditional ownership (borrow when possible, clone only on mutation) -
Arc<T>for shared immutable data across threads
RAII
Resources released automatically on scope exit via Drop. Mutex/RwLock guards auto-unlock. No manual cleanup needed.
String Handling
-
Cow<str>for conditional String/&str ownership -
Arc<str>for cheap cloning of shared immutable strings -
String::with_capacity()to pre-allocate
Buffer Reuse
-
Vec::clear()+ reuse instead of new allocation - Pre-allocate with
Vec::with_capacity()in hot loops -
SmallVecfor stack-allocated small collections
Lifetimes
- Default to references in function params
- Minimize lifetimes in structs (prefer owned data)
- Use
'_wildcard for unused lifetime bounds
Verification Tools
| Tool | Purpose | Command |
|---|---|---|
| Valgrind | Memory leaks, UAF | valgrind --leak-check=full ./app |
| ASan | Memory errors | RUSTFLAGS="-Z sanitizer=address" cargo +nightly build |
| Miri | Undefined behavior | cargo +nightly miri test |
| Clippy | Lifetime/safety lints | cargo clippy -- -D warnings |
Anti-Patterns
-
Cloneinstead of&T(unnecessary allocation) -
format!()when borrowing suffices - Holding mutex guards across
.awaitpoints -
Box<T>for simple owned data (unnecessary indirection) - No buffer pre-allocation in hot paths
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-03-11
- Index updated
- 2026-03-11
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!