memory-safety-optimization-patterns
maintained by kreuzberg-dev
star
560
account_tree
50
verified_user
MIT License
name: memory-safety-optimization-patterns description: "Instructions for memory safety optimization patterns."
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
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
560
GitHub Forks
50
Created
Mar 2026
Last Updated
4个月前
development
development architecture patterns
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!