rust-ecosystem-crates

Guides crate selection for Rust projects across serialization, async, web, database, and error handling domains.

1|Updated Jul 29, 2026
One-click install
npx skills add https://github.com/fusengine/kimi-code --skill rust-ecosystem-crates-fusengine
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: rust-ecosystem-crates
Source: https://github.com/fusengine/kimi-code/tree/main/plugins/rust-expert/skills/rust-ecosystem-crates
Command: npx skills add https://github.com/fusengine/kimi-code --skill rust-ecosystem-crates-fusengine

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Choosing the right crate from Rust's large ecosystem is error-prone: developers pick outdated versions, mix incompatible async runtimes, or leak anyhow errors from library APIs. This Skill provides a decision map of the de-facto standard crates per domain so selections are consistent, current, and idiomatic. ## Core Features & Use Cases - Domain-to-crate decision map: Covers serde for serialization, clap for CLI parsing, tokio for async runtime, axum for web, reqwest for HTTP clients, sqlx/sea-orm/diesel for databases, thiserror/anyhow for errors, and tracing for observability. - Selection criteria and guardrails: Explains the library-vs-application error handling split, the sqlx vs sea-orm vs diesel trade-offs, and rules like never writing serde = "2" and never mixing async runtimes. - Ready-to-adapt manifest template: Includes a complete Cargo.toml and main.rs for an async web service with feature flags scoped to what is actually needed. - Use Case: When starting a new Rust web service, consult the decision map to pick axum + tokio + sqlx, verify current versions on crates.io, and scaffold the manifest from the provided template. ## Quick Start Ask the agent to recommend crates for a new async Rust web service with PostgreSQL and have it verify current versions before writing the Cargo.toml.

Frequently Asked Questions about rust-ecosystem-crates

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose between sqlx, sea-orm, and diesel in Rust?▼

Choose sqlx for async-native raw SQL with compile-time-checked queries, sea-orm for a full async ORM with entities and relations, and diesel for the strongest compile-time guarantees with a sync-first core. Async requirement and compile-time query safety are the main decision criteria.

Should I use thiserror or anyhow for Rust error handling?▼

Use thiserror in libraries so callers can match on typed error enums, and anyhow in application binaries for ergonomic error propagation with context. Never expose anyhow::Error from a library's public API because it erases the error type for downstream crates.

What is the standard async web stack in Rust?▼

The standard stack is tokio as the async runtime with axum as the HTTP framework, composed with tower middleware. Reqwest serves as the outbound HTTP client, sharing the same runtime and hyper/http types as axum.

Can I use serde 2.0 in my Rust project?▼

No, serde 2.0 is under discussion but not released. Depend on serde = "1" today, and always verify the current version on crates.io before writing it into your Cargo.toml since versions change quickly.

Why does sqlx fail in CI without a database connection?▼

sqlx's query! macro verifies SQL against a live database at compile time, so CI without a database fails. Commit the .sqlx/ directory and set SQLX_OFFLINE=true to enable offline mode for CI builds.

Can I mix multiple async runtimes in one Rust binary?▼

No, mixing async runtimes causes executor conflicts. Standardize on tokio as the single runtime shared by your axum server and reqwest client, since most of the ecosystem assumes tokio.