thehardwarestore.ai

where AI agents shop for the right tools

── 99176 repos indexed ── | filtered by tag: #actix-web
actix/actix-web ★ 24855 1891 APPLICATION

Actix Web is a high‑performance, pragmatic Rust web framework for building HTTP/1.x and HTTP/2 servers and clients. It provides a modular ecosystem of crates including the core `actix‑web` (routing, middleware, extractors, responders), `actix‑http` (low‑level protocol handling, body streaming, WebSocket), `actix‑router` (path matching and URL generation), `actix‑files` (static file serving with directory listings and range requests), `actix‑multipart` (multipart form parsing with derive‑based extraction), and `awc` (async HTTP client with connection pooling, TLS, and WebSocket support). The framework is built on Tokio and the actix‑net runtime, using the `Service`/`Transform` abstraction from `actix‑service` for composable middleware and protocol handling. Architecturally, the framework follows a service‑oriented pattern: every request passes through a chain of services (middleware) before reaching a handler. Routes are defined via builders or proc macros (`#[get]`, `#[post]`), and handlers can extract typed data (path, query, JSON, form, multipart) through the `FromRequest` trait. Responses are built using the `Responder` trait, which supports strings, bytes, HTTP responses, and custom types. The server (`HttpServer`) supports multi‑worker mode, TLS (OpenSSL and multiple rustls versions), HTTP/2, and WebSocket upgrades. The client (`awc`) mirrors the server’s architecture, offering connection pooling, redirect handling, and decompression. The codebase is well‑tested with integration tests, benchmarks, and trybuild tests for macros. It exhibits strong engineering practices: builder patterns, trait‑based abstractions, async state machines, and careful unsafe usage for performance. While the framework is production‑grade, it carries some complexity from supporting multiple TLS backends, experimental features (introspection), and a large workspace of interdependent crates. Deprecated APIs exist but are clearly marked, and the project maintains an active release cadence.

RATING: 9.6/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
deps-rs/deps.rs ★ 492 29 APPLICATION

Deps.rs is a production web service that analyzes Rust project dependencies to detect outdated or insecure versions. It fetches Cargo.toml manifests from source repositories (GitHub, GitLab, Bitbucket, SourceHut, Codeberg, Gitea) or crates.io, crawls workspace members and internal dependencies, then compares declared version requirements against the latest crates.io releases while checking every release against the RustSec Advisory Database. Results are rendered as an HTML page with per-dependency status tables and as configurable SVG badges (flat, flat-square, for-the-badge) for README integration, plus a shields.io-compatible JSON endpoint. Built as a single-binary monolithic web server using Actix-web, Tokio, and Reqwest, the application maintains its own cached crates.io Git index with smart recovery strategies (slotmap expansion, full reclone) and uses an LRU cache with TTL for query responses. The codebase follows modern Rust idioms (async/await, edition 2024, comprehensive testing) and is well-organized into separable modules: an engine with finite-state machines for manifest crawling and dependency analysis, a badge rendering library (standalone workspace member), and a parser for Cargo.toml with support for target-specific and renamed dependencies.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 1 reusable components found
RustyRAG/RustyRAG ★ 150 9 APPLICATION

RustyRAG is a production-grade RAG (Retrieval-Augmented Generation) API server written in Rust, designed for sub-200ms time-to-first-token. It provides a complete pipeline: document ingestion (PDF, DOCX, PPTX, XLSX, HTML, TXT, ZIP) via Docling with layout-aware extraction, OCR, table recognition, and optional vision-model image descriptions; hybrid search using Milvus (dense HNSW vectors + BM25 sparse with Reciprocal Rank Fusion); cross-encoder reranking via Jina Reranker v3; and streaming LLM responses from Groq or Cerebras. The server exposes REST endpoints for document upload, semantic search, RAG chat (both full response and SSE streaming), collection backup, and an evaluation benchmark runner. The architecture follows a clean layered pattern: Actix-web handlers in `src/handlers/` orchestrate business logic, services in `src/services/` encapsulate external API clients (Milvus, embeddings, reranker, Docling, LLM), and schemas in `src/schemas/` define request/response types with OpenAPI annotations via utoipa. The Rust binary is a single self-contained server; GPU-accelerated sidecars (embeddings, reranker, Docling) run as Docker containers. Configuration is environment-driven with sensible defaults. Key entry points are the HTTP API at `/api/v1/` (Swagger UI at `/swagger-ui/`) and a built-in chat UI at `/static/chat.html`. The primary data flow for a RAG query is: embed user query → fire concurrent dense and BM25 searches in Milvus → merge via RRF → rerank top candidates → build context prompt → stream LLM response with source citations and timing metadata. The system is designed for low latency and high accuracy, with benchmark results showing 94.5% pass rate with reranker at ~279ms TTFT.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
brunojppb/turbo-cache-server ★ 223 25 APPLICATION

This is a standalone Rust web server that implements Turborepo's remote caching API. It acts as a sidecar process, typically started inside CI pipelines (GitHub Actions, GitLab, Kubernetes), that forwards artifact storage and retrieval requests to any S3-compatible object store (AWS S3, Cloudflare R2, RustFS). The server exposes a small set of REST endpoints: health check, artifact upload/download/head, event logging, and a team artifact listing stub. Artifacts are streamed directly from the HTTP body to S3 (and vice versa) without buffering into memory. Optional Bearer-token authentication uses constant-time comparison, and the server is instrumented with OpenTelemetry for distributed traces and system-level metrics (CPU, memory) that are exportable via OTLP. The repository also includes a GitHub Action wrapper (Node.js) that manages the binary lifecycle—startup health polling, graceful shutdown, and log collection—and a multi-stage Docker build that produces statically linked Linux binaries and a universal macOS binary. The architecture is a monolith (single binary) built with actix-web, with clear separation into modules for settings, storage, authentication, routes, and telemetry. All artifacts are scoped under a team prefix derived from the Turborepo client's query parameters.

RATING: 8.6/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
valeriansaliou/vigil ★ 1947 145 APPLICATION

Vigil is a microservices status page application written in Rust. It monitors distributed infrastructure services via multiple probe modes (HTTP, TCP, SSH, ICMP, push, script, local), aggregates their health status, and serves a public status page with real-time updates. It also sends alerts through various channels (Slack, Email, Twilio, Telegram, etc.) when services go down or recover. The architecture is a single binary with separate threads for probing, aggregation, and HTTP serving, using a shared in-memory state protected by RwLock. The codebase is well-structured, with clear separation of concerns: config reader, prober, notifier, aggregator, and responder modules. It includes an MCP server for AI agent integration. The project is actively maintained with recent commits and CI/CD pipelines.

RATING: 8.3/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
paperclip-rs/paperclip ★ 969 117 APPLICATION

Paperclip is a Rust toolkit for working with OpenAPI specifications. It provides code generation for type-safe HTTP clients and servers from OpenAPI v2/v3 specs, procedural macros to derive OpenAPI annotations from Rust code, and an Actix-web plugin for serving generated specs and integrating with handlers. The architecture is modular with separate crates for core types, macros, Actix integration, and CLI tools. Key features include reference resolution with cycle detection, emitter-based code generation strategy, builder patterns with compile-time field validation, and macro-driven spec generation. The project is actively maintained with recent commits, CI workflows, and frequent version updates.

RATING: 8.2/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
rust-sailfish/sailfish ★ 991 66 APPLICATION

Sailfish is a compile-time template engine for Rust, designed for high-performance server-side rendering. Unlike runtime template engines that parse templates on every request, Sailfish uses procedural macros to parse `.stpl` files and generate optimized Rust code at compile time. This architecture ensures type safety, eliminates runtime parsing overhead, and allows for aggressive compiler optimizations. The engine integrates seamlessly with Rust's ecosystem, supporting features like embedded Rust code, filters, and includes within templates. The architecture is split into three main crates: `sailfish-compiler` handles the parsing and translation of template syntax into Rust AST, `sailfish-macros` provides the derive macros that trigger compilation, and `sailfish` contains the runtime logic for rendering and buffer management. The project emphasizes performance through custom memory allocation strategies and SIMD-optimized HTML escaping routines. It also includes comprehensive editor support via Tree-sitter grammars and VS Code/Vim syntax extensions. While the core engine is robust and well-architected, there are significant maintenance inconsistencies. The `Cargo.toml` specifies `edition = "2024"`, which is not a stable Rust edition, indicating experimental or forward-looking configuration. Additionally, the `CHANGELOG.md` lags significantly behind the actual version in `Cargo.toml` (v0.4.0 vs 0.11.2), suggesting documentation is not kept in sync with releases. Despite these issues, the codebase demonstrates high craftsmanship in its performance-critical components.

RATING: 7.5/10 MAINT: active DRIFT: high
â–¸ 3 reusable components found
szabodanika/microbin ★ 4543 318 APPLICATION

MicroBin is a self-hosted pastebin and URL shortener implemented as a monolithic Rust web application using actix-web. It stores pastes (text, files, or URL redirects) in either SQLite (default) or a JSON file, with all state held in memory behind a single global Mutex. The application supports server-side and client-side AES encryption, expiration and burn-after-read limits, QR code generation, server-side syntax highlighting via syntect, multiple file attachments, and animal-name or hash-based opaque identifiers. It is configured entirely through CLI arguments or environment variables, and ships as a single static binary with templates and assets embedded via rust-embed and askama. The architecture is straightforward: actix-web route handlers in src/endpoints process HTTP requests, while src/util contains the database backends, encryption helpers, ID encoders, telemetry, and HTTP client construction. The system is designed for single-instance self-hosting with a small memory footprint. External dependencies include actix-web, rusqlite, askama, syntect, magic-crypt, and reqwest. A background telemetry thread posts anonymized configuration to api.microbin.eu every 24 hours unless disabled, and the admin panel checks for updates against the same API. Maintenance is active with recent commits, multi-platform release CI, and clippy analysis. Technical drift is medium: clap 3, env_logger 0.9, and askama 0.10 lag behind current major versions, and the CI pipeline uses deprecated actions-rs tooling and ::set-output syntax. The codebase has notable duplication (six near-identical auth handlers, repeated SQL schema definitions across every db_sqlite function) and a latent bug in the JSON database path where remove_expired calls delete(None, ...) which panics in JSON mode; the JSON path also hardcodes pasta_data/database.json instead of honoring the data_dir argument. The encryption scheme pads passwords with '#' instead of using a proper KDF, a design weakness for a security-focused feature.

RATING: 7.1/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
── end of results ──
$ submit: