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. Elixir bindings via Rustler NIF with OTP integration.

Built with alefRustPythonNode.jsWASMRubyPHPElixirJavaGoC#KotlinDartSwiftZigC FFIHomebrewLicense

Install · Quick example · Features · Docs


What this package provides

Installation

Add to mix.exs:

def deps do
[
{:spikard, "~> 0.17.0-rc.3"}
]
end

Run mix deps.get.

System Requirements

Quick example

See the spikard repository for usage examples and guides.

Features

FeatureSupport
Type-safe routingPath, query, body, and header parameter validation
Request extractionTyped structs for JSON, form data, multipart, and raw bodies
Spec supportOpenAPI 3.0 · AsyncAPI 3.0 · GraphQL SDL · JSON-RPC 2.0
MiddlewareCompression, rate limiting, timeouts, authentication, static files
Lifecycle hooksRequest, pre-validation, pre-handler, response, and error hooks
WebSocket & SSEBidirectional streams and server-sent events
Error handlingConsistent error responses across all bindings via ProblemDetails
Fixture testingShared 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.