Spikard
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.
What This Package Provides
- HTTP application core — typed routing, request data extraction, validation, lifecycle hooks, and Tower middleware from the Rust engine.
- Spec-driven work — OpenAPI, AsyncAPI, GraphQL SDL, JSON-RPC, and SQL-to-HTTP codegen are shared across bindings.
- Cross-language parity — generated bindings use the same DTOs, fixtures, and error model, so behavior does not drift between runtimes.
- Native integration — no sidecar server required; each package calls the Rust core through its language-native bridge.
- Dart package — Future/Stream API through flutter_rust_bridge.
Installation
dart pub add spikard
System Requirements
- Dart 3.0+ required
Quick Start
See the spikard repository for usage examples and guides.
Features
- HTTP routing — type-safe route definitions with path, query, and body parameter validation
- OpenAPI / AsyncAPI / GraphQL / JSON-RPC — code generation and spec parsing built in
- Tower middleware — compression, rate limiting, timeouts, auth (JWT/API key), static files
- Lifecycle hooks —
onRequest,preValidation,preHandler,onResponse,onError - Fixture-driven testing — shared JSON fixtures drive tests across all language bindings
- Polyglot — single Rust core, thin bindings for Python, Node.js, Ruby, PHP, Elixir, Go, Java, C#, Kotlin, Dart, Gleam, WASM, Swift, Zig, and C FFI
Documentation
- Repository — source code, examples, and contributing guide
- Examples — working server examples
- Issues — bug reports and feature requests
Contributing
Contributions are welcome. See CONTRIBUTING.md.
License
MIT License — see LICENSE for details.