spikard - polyglot web toolkit

Spikard — Part of the spikard polyglot web toolkit.

Rust-centric polyglot HTTP framework with OpenAPI/AsyncAPI/GraphQL/JSON-RPC codegen, tower-http middleware, and fixture-driven cross-language testing. Dart bindings via flutter_rust_bridge with isolate-safe Future/Stream APIs.

Built with alef Rust Python Node.js WASM Ruby PHP Elixir Java Go C# Kotlin Dart Swift Zig C FFI Homebrew License

Install · Quick example · Features · Docs


What this package provides

  • Flutter-compatible FFI — Dart 3.0+ with Future and Stream APIs

  • Type-safe routing — HTTP definitions with path, query, body, and header validation across all bindings

  • Spec-driven codegen — OpenAPI 3.0, AsyncAPI 3.0, GraphQL SDL, and JSON-RPC 2.0 support

  • Cross-language parity — same DTOs, fixtures, and error model prevent runtime drift

  • Tower middleware — compression, rate limiting, timeouts, auth (JWT/API key), static files

  • Lifecycle hooksonRequest, preValidation, preHandler, onResponse, onError

Installation

dart pub add spikard

System Requirements

  • Dart 3.0+ required

Quick example

See the spikard repository for usage examples and guides.

Features

Feature Support
Type-safe routing Path, query, body, and header parameter validation
Request extraction Typed structs for JSON, form data, multipart, and raw bodies
Spec support OpenAPI 3.0 · AsyncAPI 3.0 · GraphQL SDL · JSON-RPC 2.0
Middleware Compression, rate limiting, timeouts, authentication, static files
Lifecycle hooks Request, pre-validation, pre-handler, response, and error hooks
WebSocket & SSE Bidirectional streams and server-sent events
Error handling Consistent error responses across all bindings via ProblemDetails
Fixture testing Shared JSON fixtures for behavioral consistency across languages
Routing

See examples in the repository.

Validation

See examples in the repository.

Middleware & configuration

See examples in the repository.

Resources

License

MIT License — see LICENSE for details.

Libraries

spikard