m11-ecosystem

安装量: 566
排名: #1951

安装

npx skills add https://github.com/zhanghandong/rust-skills --skill m11-ecosystem

Current Dependencies (Auto-Injected)

!grep -A 100 '^[dependencies]' Cargo.toml 2>/dev/null | head -30 || echo "No Cargo.toml found"

Ecosystem Integration

Layer 2: Design Choices

Core Question

What's the right crate for this job, and how should it integrate?

Before adding dependencies:

Is there a standard solution? What's the maintenance status? What's the API stability? Integration Decision → Implementation Need Choice Crates Serialization Derive-based serde, serde_json Async runtime tokio or async-std tokio (most popular) HTTP client Ergonomic reqwest HTTP server Modern axum, actix-web Database SQL or ORM sqlx, diesel CLI parsing Derive-based clap Error handling App vs lib anyhow, thiserror Logging Facade tracing, log Thinking Prompt

Before adding a dependency:

Is it well-maintained?

Recent commits? Active issue response? Breaking changes frequency?

What's the scope?

Do you need the full crate or just a feature? Can feature flags reduce bloat?

How does it integrate?

Trait-based or concrete types? Sync or async? What bounds does it require? Trace Up ↑

To domain constraints (Layer 3):

"Which HTTP framework should I use?" ↑ Ask: What are the performance requirements? ↑ Check: domain-web (latency, throughput needs) ↑ Check: Team expertise (familiarity with framework)

Question Trace To Ask Framework choice domain- What constraints matter? Library vs build domain- What's the deployment model? API design domain-* Who are the consumers? Trace Down ↓

To implementation (Layer 1):

"Integrate external crate" ↓ m04-zero-cost: Trait bounds and generics ↓ m06-error-handling: Error type compatibility

"FFI integration" ↓ unsafe-checker: Safety requirements ↓ m12-lifecycle: Resource cleanup

Quick Reference Language Interop Integration Crate/Tool Use Case C/C++ → Rust bindgen Auto-generate bindings Rust → C cbindgen Export C headers Python ↔ Rust pyo3 Python extensions Node.js ↔ Rust napi-rs Node addons WebAssembly wasm-bindgen Browser/WASI Cargo Features Feature Purpose [features] Optional functionality default = [...] Default features feature = "serde" Conditional deps [workspace] Multi-crate projects Error Code Reference Error Cause Fix E0433 Can't find crate Add to Cargo.toml E0603 Private item Check crate docs Feature not enabled Optional feature Enable in features Version conflict Incompatible deps cargo update or pin Duplicate types Different crate versions Unify in workspace Crate Selection Criteria Criterion Good Sign Warning Sign Maintenance Recent commits Years inactive Community Active issues/PRs No response Documentation Examples, API docs Minimal docs Stability Semantic versioning Frequent breaking Dependencies Minimal, well-known Heavy, obscure Anti-Patterns Anti-Pattern Why Bad Better extern crate Outdated (2018+) Just use

[macro_use] Global pollution Explicit import

Wildcard deps * Unpredictable Specific versions Too many deps Supply chain risk Evaluate necessity Vendoring everything Maintenance burden Trust crates.io Related Skills When See Error type design m06-error-handling Trait integration m04-zero-cost FFI safety unsafe-checker Resource management m12-lifecycle

返回排行榜