Purpose & When-To-Use
Trigger conditions:
- Pre-merge code review for Rust projects requiring safety/performance validation
- Auditing async services using tokio for runtime efficiency and concurrency bugs
- Performance optimization of hot paths in production Rust code
- Unsafe code review requiring soundness verification
- Evaluating third-party Rust dependencies for quality and safety
Not for:
- Basic syntax errors (use
cargo check or rust-analyzer LSP)
- Build configuration issues (use
cargo diagnostics)
- API design patterns (use api-design-validator skill)
- Security vulnerability scanning (use cargo-audit, cargo-deny)
Pre-Checks
Time normalization:
- Compute
NOW_ET using NIST/time.gov semantics (America/New_York, ISO-8601)
- Use
NOW_ET for all citation access dates
Input validation:
code_path must exist and contain valid Rust code (.rs files)
analysis_focus must be one of: "safety", "concurrency", "performance", "all"
rust_edition must be "2018" or "2021" (affects borrow checker and async behavior)
check_unsafe must be boolean (controls unsafe block analysis depth)
Source freshness:
- Verify Rust Book, Tokio docs, Performance Book links return HTTP 200
- If analyzing against specific Rust version, verify tooling matches (rustc --version)
- Check clippy version compatibility with edition (clippy --version)
Prerequisites:
- Rust toolchain installed (rustc, cargo, clippy, rustfmt)
- For async analysis: tokio crate version noted (affects runtime behavior)
- For SIMD: target architecture specified (x86_64, aarch64, etc.)
Procedure
T1: Basic Safety Review (≤2k tokens)
Fast path for ownership/borrowing issues:
Ownership Analysis
- Check move semantics: variables used after move
- Validate clone usage: unnecessary clones on Copy types
- Detect double-free potential in manual Drop implementations
Borrowing Rules
- Mutable borrow conflicts: &mut T alongside &T or other &mut T
- Lifetime elision issues: implicit lifetimes causing unexpected behavior
- Self-referential structs without Pin<Box>
Quick Safety Score
- Calculate:
100 - (borrow_errors×15 + move_errors×10 + lifetime_warnings×5)
- Flag critical issues requiring immediate attention
Decision: If analysis_focus == "safety" AND score >90 → STOP at T1; otherwise proceed to T2.
References:
T2: Concurrency Patterns (≤6k tokens)
Extended validation for async/await and synchronization:
Tokio Runtime Patterns
- Blocking calls in async context: detect
std::fs, std::thread::sleep in async fns
- Task spawning efficiency: analyze spawn vs spawn_blocking usage
- Runtime selection: multi-threaded vs current-thread appropriateness
- Resource leaks: uncancelled tasks, unbounded channels
Reference: Tokio Tutorial (accessed 2025-10-26T03:52:00-04:00)
Synchronization Primitives
- Arc/Mutex vs Arc/RwLock: read-heavy workloads using Mutex
- Deadlock detection: lock acquisition order analysis
- Channel selection: mpsc vs broadcast vs watch appropriateness
- Atomic operations: relaxed ordering correctness
Reference: Rust Atomics and Locks (accessed 2025-10-26T03:52:00-04:00)
Async Patterns
- Future combinators: inefficient sequential await chains (use join!/try_join!)
- Select bias: fairness in tokio::select! branches
- Cancellation safety: .await points losing data on task cancellation
- Send bounds: non-Send types crossing .await boundaries
Reference: Tokio: Async in Depth (accessed 2025-10-26T03:52:00-04:00)
Concurrency Score Adjustment
- Apply weights:
deadlock_risk×20 + race_condition×15 + resource_leak×10
- Recommend fixes with async/sync trade-off analysis
T3: Performance Optimization (≤12k tokens)
Deep dive into zero-copy, allocations, and SIMD:
Allocation Analysis
- Unnecessary heap allocations: detect Box/Vec/String where stack works
- Collection pre-sizing: Vec::with_capacity, HashMap::with_capacity
- Copy-on-write: evaluate Cow usage opportunities
- String concatenation: += vs format! vs join() efficiency
Reference: Rust Performance Book - Heap Allocations (accessed 2025-10-26T03:52:00-04:00)
Zero-Copy Patterns
- Slice usage: &[T] vs Vec in function signatures
- AsRef/Borrow traits: generic borrowing for API flexibility
- MaybeUninit: safe uninitialized memory for hot paths
- Bytes crate: efficient buffer management in network code
Reference: Rust Performance Book - Type Sizes (accessed 2025-10-26T03:52:00-04:00)
SIMD Opportunities
- Auto-vectorization blockers: iterator chains preventing SIMD
- Explicit SIMD: std::simd usage for data-parallel operations
- Alignment requirements: repr(align) for cache-line optimization
- Target features: conditional compilation for platform-specific SIMD
Reference: Portable SIMD Project (accessed 2025-10-26T03:52:00-04:00)
Profiling Recommendations
- Suggest profiling tools: cargo-flamegraph, perf, Instruments
- Benchmarking setup: criterion.rs integration
- Hotspot identification: functions to prioritize for optimization
Reference: Criterion.rs (accessed 2025-10-26T03:52:00-04:00)
Unsafe Code Review (if check_unsafe == true)
- Soundness verification: invariants documented and upheld
- Undefined behavior patterns: dangling pointers, data races
- Safe abstraction boundaries: public API cannot trigger UB
- Alternative safe approaches: when unsafe is unnecessary
Reference: The Rustonomicon - Unsafe Rust (accessed 2025-10-26T03:52:00-04:00)
Decision Rules
Analysis Focus Routing:
safety → T1 only, skip concurrency/performance
concurrency → T1 + T2 (ownership matters for Send/Sync)
performance → T1 + T3 (safety issues affect optimization validity)
all → T1 + T2 + T3 (comprehensive analysis)
Abort Conditions:
code_path not readable → error "File/directory not accessible"
- No .rs files found → error "No Rust source files detected"
- Rust toolchain missing → error "Install rustc/cargo (rustup.rs)"
- Parse failure → return partial results with "syntax errors present" warning
Severity Thresholds:
- Critical: Undefined behavior, data races, memory unsafety
- High: Deadlock potential, resource leaks, significant perf issues
- Medium: Suboptimal patterns, unnecessary allocations
- Low: Style preferences, micro-optimizations
Ambiguity Handling:
- Lifetime inference failures: suggest explicit annotations
- Async vs sync unclear: recommend profiling before conversion
- Unsafe necessity unclear: propose safe alternative with caveats
Output Contract
Schema (JSON):
{
"code_path": "string",
"rust_edition": "2018 | 2021",
"analysis_focus": "safety | concurrency | performance | all",
"overall_score": "integer (0-100)",
"safety_report": {
"ownership_issues": [
{
"file": "string",
"line": "integer",
"severity": "critical | high | medium | low",
"category": "move-after-use | borrow-conflict | lifetime",
"message": "string",
"fix": "string (optional)"
}
],
"unsafe_blocks": [
{
"file": "string",
"line": "integer",
"soundness_concern": "boolean",
"rationale": "string",
"safe_alternative": "string (optional)"
}
]
},
"concurrency_analysis": {
"deadlock_risks": ["array of objects with file/line/description"],
"race_conditions": ["array of objects"],
"async_issues": ["array of objects with tokio-specific patterns"],
"sync_primitive_recommendations": ["array of strings"]
},
"performance_recommendations": {
"allocations": ["array of hotspots with impact estimates"],
"zero_copy_opportunities": ["array with refactoring suggestions"],
"simd_candidates": ["array with vectorization potential"],
"profiling_setup": "string (command to run)"
},
"ecosystem_suggestions": {
"recommended_crates": ["array of crate names with use cases"],
"clippy_config": "string (TOML snippet)",
"rustfmt_config": "string (TOML snippet)"
},
"metrics": {
"total_lines": "integer",
"unsafe_line_count": "integer",
"async_fn_count": "integer",
"critical_issues": "integer",
"high_issues": "integer",
"medium_issues": "integer",
"low_issues": "integer"
},
"timestamp": "ISO-8601 string (NOW_ET)"
}
Required Fields:
code_path, rust_edition, analysis_focus, overall_score, metrics, timestamp
- At least one of:
safety_report, concurrency_analysis, performance_recommendations (based on focus)
Fix Suggestions:
- Grouped by severity (critical first)
- Include code diff or refactoring instructions
- Reference Rust Book/docs.rs for learning resources
- Maximum 10 suggestions per category (prioritize highest impact)
Examples
Example: Async Rust Service with Concurrency Issues
// INPUT: async service with tokio runtime inefficiencies
use tokio::sync::Mutex;
use std::sync::Arc;
async fn process_requests(db: Arc<Mutex<Database>>) {
loop {
let req = receive_request().await;
// Issue 1: Holding lock across .await (blocking other tasks)
let mut db = db.lock().await;
db.update(req).await; // .await while holding Mutex
// Issue 2: Blocking I/O in async context
std::fs::read_to_string("config.txt").unwrap();
// Issue 3: Spawning without bound (memory leak potential)
tokio::spawn(async move {
slow_operation().await;
});
}
}
// T2 ANALYSIS OUTPUT:
// Critical: Mutex held across .await (line 9-10)
// Fix: Minimize critical section, release before async call
// High: Blocking std::fs in async fn (line 13)
// Fix: Use tokio::fs::read_to_string
// High: Unbounded task spawning (line 16)
// Fix: Use semaphore or bounded channel
Quality Gates
Token Budgets:
- T1: ≤2k tokens (ownership/borrowing basics)
- T2: ≤6k tokens (async patterns + sync primitives)
- T3: ≤12k tokens (perf analysis + unsafe review + profiling)
Safety:
- No code execution beyond
cargo check --message-format=json
- Sandbox filesystem access (read-only)
- Redact any secrets found in source comments
Auditability:
- Cite Rust edition for borrow checker behavior differences
- Log clippy version and lints enabled
- Include rustc version in output metadata
- Deterministic results (same code + edition → same findings)
Performance:
- T1 response: <3 seconds for single file ≤500 lines
- T2 response: <8 seconds for moderate async project
- T3 response: <20 seconds with full unsafe review
- Recommend splitting analysis for projects >50k LOC
Accuracy:
- All lifetime/borrow errors verified against
cargo check
- Async issues tested against tokio documentation examples
- Performance claims backed by Rust Performance Book or benchmarks
- SIMD recommendations conditional on target architecture
Resources
Official Rust Documentation (accessed 2025-10-26T03:52:00-04:00):
- The Rust Programming Language (Book)
- The Rustonomicon (Unsafe Rust)
- Rust Reference
- Rust API Guidelines
Async/Concurrency (accessed 2025-10-26T03:52:00-04:00):
5. Tokio Documentation
6. Tokio Tutorial
7. Async Book
8. Rust Atomics and Locks
Performance (accessed 2025-10-26T03:52:00-04:00):
9. Rust Performance Book
10. Criterion.rs Benchmarking
11. Portable SIMD
Tooling Integration:
resources/clippy-config.toml - Recommended clippy lints for each focus area
resources/rustfmt.toml - Standard formatting configuration
resources/cargo-deny.toml - Dependency security/license checking
Crate Recommendations by Use Case:
- Async runtime: tokio, async-std, smol
- Channels: flume, crossbeam-channel
- Serialization: serde, bincode, postcard (zero-copy)
- Profiling: pprof, tracing-subscriber, console
- SIMD: simdeez, packed_simd
1---2name: rust-safety-performance-analyzer3description: Review Rust code for memory safety, concurrency patterns, performance optimization, and ecosystem tooling (cargo, clippy, rustfmt).4license: MIT5---67## Purpose & When-To-Use89**Trigger conditions:**10- Pre-merge code review for Rust projects requiring safety/performance validation11- Auditing async services using tokio for runtime efficiency and concurrency bugs12- Performance optimization of hot paths in production Rust code13- Unsafe code review requiring soundness verification14- Evaluating third-party Rust dependencies for quality and safety1516**Not for:**17- Basic syntax errors (use `cargo check` or rust-analyzer LSP)18- Build configuration issues (use `cargo` diagnostics)19- API design patterns (use api-design-validator skill)20- Security vulnerability scanning (use cargo-audit, cargo-deny)2122---2324## Pre-Checks2526**Time normalization:**27- Compute `NOW_ET` using NIST/time.gov semantics (America/New_York, ISO-8601)28- Use `NOW_ET` for all citation access dates2930**Input validation:**31- `code_path` must exist and contain valid Rust code (.rs files)32- `analysis_focus` must be one of: "safety", "concurrency", "performance", "all"33- `rust_edition` must be "2018" or "2021" (affects borrow checker and async behavior)34- `check_unsafe` must be boolean (controls unsafe block analysis depth)3536**Source freshness:**37- Verify Rust Book, Tokio docs, Performance Book links return HTTP 20038- If analyzing against specific Rust version, verify tooling matches (rustc --version)39- Check clippy version compatibility with edition (clippy --version)4041**Prerequisites:**42- Rust toolchain installed (rustc, cargo, clippy, rustfmt)43- For async analysis: tokio crate version noted (affects runtime behavior)44- For SIMD: target architecture specified (x86_64, aarch64, etc.)4546---4748## Procedure4950### T1: Basic Safety Review (≤2k tokens)5152**Fast path for ownership/borrowing issues:**53541. **Ownership Analysis**55 - Check move semantics: variables used after move56 - Validate clone usage: unnecessary clones on Copy types57 - Detect double-free potential in manual Drop implementations58592. **Borrowing Rules**60 - Mutable borrow conflicts: &mut T alongside &T or other &mut T61 - Lifetime elision issues: implicit lifetimes causing unexpected behavior62 - Self-referential structs without Pin<Box<T>>63643. **Quick Safety Score**65 - Calculate: `100 - (borrow_errors×15 + move_errors×10 + lifetime_warnings×5)`66 - Flag critical issues requiring immediate attention6768**Decision:** If `analysis_focus == "safety"` AND score >90 → STOP at T1; otherwise proceed to T2.6970**References:**71- [The Rust Programming Language - Ownership](https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html) (accessed 2025-10-26T03:52:00-04:00)72- [Rust Reference - Lifetime Elision](https://doc.rust-lang.org/reference/lifetime-elision.html) (accessed 2025-10-26T03:52:00-04:00)7374---7576### T2: Concurrency Patterns (≤6k tokens)7778**Extended validation for async/await and synchronization:**79801. **Tokio Runtime Patterns**81 - Blocking calls in async context: detect `std::fs`, `std::thread::sleep` in async fns82 - Task spawning efficiency: analyze spawn vs spawn_blocking usage83 - Runtime selection: multi-threaded vs current-thread appropriateness84 - Resource leaks: uncancelled tasks, unbounded channels8586 **Reference:** [Tokio Tutorial](https://tokio.rs/tokio/tutorial) (accessed 2025-10-26T03:52:00-04:00)87882. **Synchronization Primitives**89 - Arc/Mutex vs Arc/RwLock: read-heavy workloads using Mutex90 - Deadlock detection: lock acquisition order analysis91 - Channel selection: mpsc vs broadcast vs watch appropriateness92 - Atomic operations: relaxed ordering correctness9394 **Reference:** [Rust Atomics and Locks](https://marabos.nl/atomics/) (accessed 2025-10-26T03:52:00-04:00)95963. **Async Patterns**97 - Future combinators: inefficient sequential await chains (use join!/try_join!)98 - Select bias: fairness in tokio::select! branches99 - Cancellation safety: .await points losing data on task cancellation100 - Send bounds: non-Send types crossing .await boundaries101102 **Reference:** [Tokio: Async in Depth](https://tokio.rs/tokio/tutorial/async) (accessed 2025-10-26T03:52:00-04:00)1031044. **Concurrency Score Adjustment**105 - Apply weights: `deadlock_risk×20 + race_condition×15 + resource_leak×10`106 - Recommend fixes with async/sync trade-off analysis107108---109110### T3: Performance Optimization (≤12k tokens)111112**Deep dive into zero-copy, allocations, and SIMD:**1131141. **Allocation Analysis**115 - Unnecessary heap allocations: detect Box/Vec/String where stack works116 - Collection pre-sizing: Vec::with_capacity, HashMap::with_capacity117 - Copy-on-write: evaluate Cow usage opportunities118 - String concatenation: += vs format! vs join() efficiency119120 **Reference:** [Rust Performance Book - Heap Allocations](https://nnethercote.github.io/perf-book/heap-allocations.html) (accessed 2025-10-26T03:52:00-04:00)1211222. **Zero-Copy Patterns**123 - Slice usage: &[T] vs Vec<T> in function signatures124 - AsRef/Borrow traits: generic borrowing for API flexibility125 - MaybeUninit: safe uninitialized memory for hot paths126 - Bytes crate: efficient buffer management in network code127128 **Reference:** [Rust Performance Book - Type Sizes](https://nnethercote.github.io/perf-book/type-sizes.html) (accessed 2025-10-26T03:52:00-04:00)1291303. **SIMD Opportunities**131 - Auto-vectorization blockers: iterator chains preventing SIMD132 - Explicit SIMD: std::simd usage for data-parallel operations133 - Alignment requirements: repr(align) for cache-line optimization134 - Target features: conditional compilation for platform-specific SIMD135136 **Reference:** [Portable SIMD Project](https://doc.rust-lang.org/stable/std/simd/index.html) (accessed 2025-10-26T03:52:00-04:00)1371384. **Profiling Recommendations**139 - Suggest profiling tools: cargo-flamegraph, perf, Instruments140 - Benchmarking setup: criterion.rs integration141 - Hotspot identification: functions to prioritize for optimization142143 **Reference:** [Criterion.rs](https://bheisler.github.io/criterion.rs/book/) (accessed 2025-10-26T03:52:00-04:00)1441455. **Unsafe Code Review** (if `check_unsafe == true`)146 - Soundness verification: invariants documented and upheld147 - Undefined behavior patterns: dangling pointers, data races148 - Safe abstraction boundaries: public API cannot trigger UB149 - Alternative safe approaches: when unsafe is unnecessary150151 **Reference:** [The Rustonomicon - Unsafe Rust](https://doc.rust-lang.org/nomicon/) (accessed 2025-10-26T03:52:00-04:00)152153---154155## Decision Rules156157**Analysis Focus Routing:**158- `safety` → T1 only, skip concurrency/performance159- `concurrency` → T1 + T2 (ownership matters for Send/Sync)160- `performance` → T1 + T3 (safety issues affect optimization validity)161- `all` → T1 + T2 + T3 (comprehensive analysis)162163**Abort Conditions:**164- `code_path` not readable → error "File/directory not accessible"165- No .rs files found → error "No Rust source files detected"166- Rust toolchain missing → error "Install rustc/cargo (rustup.rs)"167- Parse failure → return partial results with "syntax errors present" warning168169**Severity Thresholds:**170- **Critical:** Undefined behavior, data races, memory unsafety171- **High:** Deadlock potential, resource leaks, significant perf issues172- **Medium:** Suboptimal patterns, unnecessary allocations173- **Low:** Style preferences, micro-optimizations174175**Ambiguity Handling:**176- Lifetime inference failures: suggest explicit annotations177- Async vs sync unclear: recommend profiling before conversion178- Unsafe necessity unclear: propose safe alternative with caveats179180---181182## Output Contract183184**Schema (JSON):**185186```json187{188 "code_path": "string",189 "rust_edition": "2018 | 2021",190 "analysis_focus": "safety | concurrency | performance | all",191 "overall_score": "integer (0-100)",192 "safety_report": {193 "ownership_issues": [194 {195 "file": "string",196 "line": "integer",197 "severity": "critical | high | medium | low",198 "category": "move-after-use | borrow-conflict | lifetime",199 "message": "string",200 "fix": "string (optional)"201 }202 ],203 "unsafe_blocks": [204 {205 "file": "string",206 "line": "integer",207 "soundness_concern": "boolean",208 "rationale": "string",209 "safe_alternative": "string (optional)"210 }211 ]212 },213 "concurrency_analysis": {214 "deadlock_risks": ["array of objects with file/line/description"],215 "race_conditions": ["array of objects"],216 "async_issues": ["array of objects with tokio-specific patterns"],217 "sync_primitive_recommendations": ["array of strings"]218 },219 "performance_recommendations": {220 "allocations": ["array of hotspots with impact estimates"],221 "zero_copy_opportunities": ["array with refactoring suggestions"],222 "simd_candidates": ["array with vectorization potential"],223 "profiling_setup": "string (command to run)"224 },225 "ecosystem_suggestions": {226 "recommended_crates": ["array of crate names with use cases"],227 "clippy_config": "string (TOML snippet)",228 "rustfmt_config": "string (TOML snippet)"229 },230 "metrics": {231 "total_lines": "integer",232 "unsafe_line_count": "integer",233 "async_fn_count": "integer",234 "critical_issues": "integer",235 "high_issues": "integer",236 "medium_issues": "integer",237 "low_issues": "integer"238 },239 "timestamp": "ISO-8601 string (NOW_ET)"240}241```242243**Required Fields:**244- `code_path`, `rust_edition`, `analysis_focus`, `overall_score`, `metrics`, `timestamp`245- At least one of: `safety_report`, `concurrency_analysis`, `performance_recommendations` (based on focus)246247**Fix Suggestions:**248- Grouped by severity (critical first)249- Include code diff or refactoring instructions250- Reference Rust Book/docs.rs for learning resources251- Maximum 10 suggestions per category (prioritize highest impact)252253---254255## Examples256257**Example: Async Rust Service with Concurrency Issues**258259```rust260// INPUT: async service with tokio runtime inefficiencies261use tokio::sync::Mutex;262use std::sync::Arc;263264async fn process_requests(db: Arc<Mutex<Database>>) {265 loop {266 let req = receive_request().await;267268 // Issue 1: Holding lock across .await (blocking other tasks)269 let mut db = db.lock().await;270 db.update(req).await; // .await while holding Mutex271272 // Issue 2: Blocking I/O in async context273 std::fs::read_to_string("config.txt").unwrap();274275 // Issue 3: Spawning without bound (memory leak potential)276 tokio::spawn(async move {277 slow_operation().await;278 });279 }280}281282// T2 ANALYSIS OUTPUT:283// Critical: Mutex held across .await (line 9-10)284// Fix: Minimize critical section, release before async call285// High: Blocking std::fs in async fn (line 13)286// Fix: Use tokio::fs::read_to_string287// High: Unbounded task spawning (line 16)288// Fix: Use semaphore or bounded channel289```290291---292293## Quality Gates294295**Token Budgets:**296- **T1:** ≤2k tokens (ownership/borrowing basics)297- **T2:** ≤6k tokens (async patterns + sync primitives)298- **T3:** ≤12k tokens (perf analysis + unsafe review + profiling)299300**Safety:**301- No code execution beyond `cargo check --message-format=json`302- Sandbox filesystem access (read-only)303- Redact any secrets found in source comments304305**Auditability:**306- Cite Rust edition for borrow checker behavior differences307- Log clippy version and lints enabled308- Include rustc version in output metadata309- Deterministic results (same code + edition → same findings)310311**Performance:**312- T1 response: <3 seconds for single file ≤500 lines313- T2 response: <8 seconds for moderate async project314- T3 response: <20 seconds with full unsafe review315- Recommend splitting analysis for projects >50k LOC316317**Accuracy:**318- All lifetime/borrow errors verified against `cargo check`319- Async issues tested against tokio documentation examples320- Performance claims backed by Rust Performance Book or benchmarks321- SIMD recommendations conditional on target architecture322323---324325## Resources326327**Official Rust Documentation (accessed 2025-10-26T03:52:00-04:00):**3281. [The Rust Programming Language (Book)](https://doc.rust-lang.org/book/)3292. [The Rustonomicon (Unsafe Rust)](https://doc.rust-lang.org/nomicon/)3303. [Rust Reference](https://doc.rust-lang.org/reference/)3314. [Rust API Guidelines](https://rust-lang.github.io/api-guidelines/)332333**Async/Concurrency (accessed 2025-10-26T03:52:00-04:00):**3345. [Tokio Documentation](https://docs.rs/tokio/latest/tokio/)3356. [Tokio Tutorial](https://tokio.rs/tokio/tutorial)3367. [Async Book](https://rust-lang.github.io/async-book/)3378. [Rust Atomics and Locks](https://marabos.nl/atomics/)338339**Performance (accessed 2025-10-26T03:52:00-04:00):**3409. [Rust Performance Book](https://nnethercote.github.io/perf-book/)34110. [Criterion.rs Benchmarking](https://bheisler.github.io/criterion.rs/book/)34211. [Portable SIMD](https://doc.rust-lang.org/stable/std/simd/)343344**Tooling Integration:**345- `resources/clippy-config.toml` - Recommended clippy lints for each focus area346- `resources/rustfmt.toml` - Standard formatting configuration347- `resources/cargo-deny.toml` - Dependency security/license checking348349**Crate Recommendations by Use Case:**350- Async runtime: tokio, async-std, smol351- Channels: flume, crossbeam-channel352- Serialization: serde, bincode, postcard (zero-copy)353- Profiling: pprof, tracing-subscriber, console354- SIMD: simdeez, packed_simd