m11-ecosystem

Ecosystem Integration

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "m11-ecosystem" with this command: npx skills add rustfs/rustfs/rustfs-rustfs-m11-ecosystem

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

m11-ecosystem

No summary provided by upstream source.

Repository SourceNeeds Review
General

m11-ecosystem

No summary provided by upstream source.

Repository SourceNeeds Review
General

coding-guidelines

No summary provided by upstream source.

Repository SourceNeeds Review
General

m05-type-driven

No summary provided by upstream source.

Repository SourceNeeds Review