Skip to content

Features

Spikard delivers the same runtime and developer experience across languages while letting you choose the binding that best fits your stack.

Core Runtime

  • Rust HTTP server built on Axum/Tokio with a pluggable middleware pipeline
  • Shared request/response model with structured path/query/header/cookie parsing
  • Built-in JSON Schema validation for inputs and outputs
  • First-class streaming: WebSockets, SSE, and long-running tasks
  • Strong typing across bindings (msgspec/Pydantic, Zod, RBS, serde)

Polyglot Bindings

  • Python via PyO3 with async event-loop orchestration and msgspec validation
  • TypeScript/Node via NAPI-RS with Zod-powered schemas
  • Ruby via magnus with Ruby-friendly routing and middleware hooks
  • PHP via ext-php-rs with native OOP API and async support
  • Rust native API mirroring the binding ergonomics

Developer Experience

  • CLI (spikard-cli) to run apps and generate DTOs/handlers from OpenAPI, AsyncAPI, OpenRPC, and Protobuf schemas
  • Binding-managed auto-reload for Python development via Spikard.run(reload=True)
  • Taskfile targets for installing deps, building bindings, and serving docs
  • Extensive fixture-driven tests to keep language parity

Deployment

  • Run as a compiled Rust binary or via the CLI
  • Container-friendly with predictable ports and health checks
  • Configuration via code, environment variables, and upcoming config files (see Configuration)