
M11 Ecosystem
Pick and wire the right Rust crates, feature flags, and workspace layout when Cargo errors or design questions block your build.
Overview
m11-ecosystem is an agent skill most often used in Build (also Operate iterate, Ship review) that guides Rust crate selection, Cargo features, and ecosystem integration for solo builders.
Install
npx skills add https://github.com/actionbook/rust-skills --skill m11-ecosystemWhat is this skill?
- Auto-injects current [dependencies] from Cargo.toml for grounded recommendations
- Decision table maps needs (serde, tokio, axum, sqlx, clap, anyhow) to standard crates
- Covers feature flags, workspaces, and common compiler errors (E0425, E0433, E0603)
- Guidance for PyO3, wasm, bindgen, cbindgen, and napi-rs cross-language integration paths
- Maintenance and API-stability checklist before accepting new dependencies
- Integration decision table with 8+ common need rows (serde, tokio, reqwest, axum, sqlx, clap, anyhow, tracing)
Adoption & trust: 905 installs on skills.sh; 1.2k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You stare at Cargo errors or a blank [dependencies] block and do not know which maintained crate or feature set fits your Rust service or CLI.
Who is it for?
Indie Rust authors building CLIs, APIs, or agents who want standard crate picks without a full architecture review.
Skip if: Greenfield learners who have not opened Cargo.toml yet—start with basic Rust modules before ecosystem layering.
When should I use this skill?
Integrating crates or ecosystem questions; keywords include E0425, E0433, dependency, feature flag, workspace, PyO3, wasm, crate recommendation.
What do I get? / Deliverables
You get a concrete crate map, integration pattern, and Cargo.toml adjustments aligned with your existing workspace and maintenance risk.
- Recommended crate list with roles
- Cargo.toml dependency and feature edits
- Integration notes for async, errors, or bindings
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
First appears in Build when you add dependencies, but the same crate-choice discipline repeats whenever you extend or harden the codebase. Backend is the canonical shelf because the skill centers on Cargo.toml, async HTTP, DB, CLI, and error-handling stacks—not frontend UI.
Where it fits
Choose axum plus sqlx for a solo SaaS API without pulling unused ORM weight.
Audit whether anyhow at the binary edge and thiserror in library crates match your error boundary.
Replace an unmaintained HTTP client after checking commit cadence and breaking-change history.
How it compares
Use instead of copying random crates.io search results without checking maintenance, features, or error-type strategy.
Common Questions / FAQ
Who is m11-ecosystem for?
Solo and small-team Rust builders integrating libraries, fixing unresolved imports, or choosing between mainstream ecosystem crates.
When should I use m11-ecosystem?
In Build when adding HTTP, async, DB, or CLI dependencies; in Ship when hardening error and logging crates; in Operate iterate when upgrading or trimming dependency trees.
Is m11-ecosystem safe to install?
Check the Security Audits panel on this page; the skill may suggest running grep on Cargo.toml—review commands before execution in CI or production checkouts.
SKILL.md
READMESKILL.md - 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: 1. **Is it well-maintained?** - Recent commits? - Active issue response? - Breaking changes frequency? 2. **What's the scope?** - Do you need the full crate or just a feature? - Can feature flags reduce bloat? 3. **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` | |