- Home
- Skills
- Zhanghandong
- Rust Skills
- M11 Ecosystem
m11-ecosystem_skill
- Shell
565
GitHub Stars
1
Bundled Files
3 weeks ago
Catalog Refreshed
2 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstart where the catalogue uses aiagentskills.
npx veilstart add skill zhanghandong/rust-skills --skill m11-ecosystem- SKILL.md4.4 KB
Overview
This skill helps pick and integrate crates into Rust projects and troubleshoot common ecosystem issues. It focuses on dependency selection, feature flags, workspace layout, FFI bindings, and common compiler errors to get integrations working reliably. Use it to evaluate trade-offs and apply concrete fixes for integration problems.
How this skill works
It inspects the integration surface: whether you need a derive-based API, async runtime compatibility, FFI bindings, or conditional features. It guides dependency choice by maintenance, docs, and stability, and maps common error codes (E0425, E0433, E0603) to actionable fixes. It also suggests tooling and crates for language interop (bindgen, cbindgen, pyo3, napi-rs, wasm-bindgen) and recommends workspace and Cargo feature strategies.
When to use it
- Choosing the right crate for serialization, HTTP, DB, CLI, logging, or async runtime
- Integrating Rust with C, Python, Node, or WebAssembly
- Resolving compiler errors about missing crates, private items, or disabled features
- Designing workspace layout to avoid duplicate versions and unify types
- Deciding which features to enable to reduce binary size or avoid optional deps
Best practices
- Prefer well-maintained crates with active repos and good docs
- Enable only needed features; use feature flags to limit bloat
- Unify dependency versions in a workspace to avoid duplicate types and version conflicts
- Favor trait-based, generic integrations when library boundaries require flexibility
- Avoid outdated patterns like extern crate or #[macro_use]; import explicitly
Example use cases
- Add serde and serde_json for derive-based serialization with minimal bloat
- Choose tokio for most async runtimes and reqwest for ergonomic HTTP clients
- Use bindgen or cbindgen when interfacing with C/C++ and pyo3 or napi-rs for Python/Node bindings
- Enable specific Cargo features in Cargo.toml to fix “feature not enabled” errors
- Rework workspace Cargo.toml to resolve duplicate-type issues caused by multiple crate versions
FAQ
Ensure the crate is listed in Cargo.toml under [dependencies] with a compatible version, run cargo update, and confirm the crate name matches the use path.
How do I fix types that conflict across crates?
Unify the dependency version via workspace dependency overrides or move shared types into a single crate so all members depend on the same version.