domain-web

actionbook/rust-skills · updated Apr 8, 2026

$npx skills add https://github.com/actionbook/rust-skills --skill domain-web
0 commentsdiscussion
summary

Layer 3: Domain Constraints

skill.md

Web Domain

Layer 3: Domain Constraints

Domain Constraints → Design Implications

Domain Rule Design Constraint Rust Implication
Stateless HTTP No request-local globals State in extractors
Concurrency Handle many connections Async, Send + Sync
Latency SLA Fast response Efficient ownership
Security Input validation Type-safe extractors
Observability Request tracing tracing + tower layers

Critical Constraints

Async by Default

RULE: Web handlers must not block
WHY: Block one task = block many requests
RUST: async/await, spawn_blocking for CPU work

State Management

RULE: Shared state must be thread-safe
WHY: Handlers run on any thread
RUST: Arc<T>, Arc<RwLock<T>> for mutable

Request Lifecycle

RULE: Resources live only for request duration
WHY: Memory management, no leaks
RUST: Extractors, proper ownership

Trace Down ↓

From constraints to design (Layer 2):

"Need shared application state"
    ↓ m07-concurrency: Use Arc for thread-safe sharing
    ↓ m02-resource: Arc<RwLock<T>> for mutable state

"Need request validation"
    ↓ m05-type-driven: Validated extractors
    ↓ m06-error-handling: IntoResponse for errors

"Need middleware stack"
    ↓ m12-lifecycle: Tower layers
    ↓ m04-zero-cost: Trait-based composition

Framework Comparison

Framework Style Best For
axum Functional, tower Modern APIs
actix-web Actor-based High performance
warp Filter composition Composable APIs
rocket Macro-driven Rapid development

Key Crates

Purpose Crate
HTTP server axum, actix-web
HTTP client reqwest
JSON serde_json
Auth/JWT jsonwebtoken
Session tower-sessions
Database sqlx, diesel
Middleware tower

Design Patterns

Pattern Purpose Implementation
Extractors Request parsing State(db), Json(payload)
Error response Unified errors impl IntoResponse
Middleware Cross-cutting Tower layers
Shared state App config Arc<AppState>

Code Pattern: Axum Handler

async fn handler(
    State(db): State<Arc<DbPool>>,
    Json(payload): Json<CreateUser>,
) -> Result<Json<User>, AppError> {
    let user = db.create_user(&payload).await?;
    Ok(Json(user))
}

// Error handling
impl IntoResponse for AppError {
    fn into_response(self) -> Response {
        let (status, message) = match self {
            Self::NotFound => (StatusCode::NOT_FOUND, "Not found"),
            Self::Internal(_) => (StatusCode::INTERNAL_SERVER_ERROR, "Internal error"),
        };
        (status, Json(json!({"error": message}))).into_response()
    }
}

Common Mistakes

Mistake Domain Violation Fix
Blocking in handler Latency spike spawn_blocking
Rc in state Not Send + Sync Use Arc
No validation Security risk Type-safe extractors
No error response Bad UX IntoResponse impl

Trace to Layer 1

Constraint Layer 2 Pattern Layer 1 Implementation
Async handlers Async/await tokio runtime
Thread-safe state Shared state Arc, Arc<RwLock>
Request lifecycle Extractors Ownership via From
Middleware Tower layers Trait-based composition

Related Skills

When See
Async patterns m07-concurrency
State management m02-resource
Error handling m06-error-handling
Middleware design m12-lifecycle

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.631 reviews
  • Aarav Farah· Dec 28, 2024

    We added domain-web from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Nia Kapoor· Dec 28, 2024

    Keeps context tight: domain-web is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Dhruvi Jain· Dec 20, 2024

    Keeps context tight: domain-web is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Arjun Jackson· Nov 27, 2024

    I recommend domain-web for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Arjun White· Nov 19, 2024

    domain-web reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Camila Wang· Nov 19, 2024

    domain-web has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Oshnikdeep· Nov 11, 2024

    domain-web has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Kofi Taylor· Oct 18, 2024

    Useful defaults in domain-web — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Arjun Bansal· Oct 10, 2024

    Registry listing for domain-web matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Luis Wang· Oct 10, 2024

    Solid pick for teams standardizing on skills: domain-web is focused, and the summary matches what you get after install.

showing 1-10 of 31

1 / 4