Keyboard shortcuts

Press ← or β†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Features

Core

FeatureDescriptionDependencies
binaryBinary protocol (POST /_api, WS framing, TCP framing)β€”
httpHTTP serverhyper, hyper-util, http-body-util
wsWebSocket servertokio-tungstenite, futures-util, binary
tcpTCP server (length-prefix framing)binary

Code Generation

FeatureDescriptionDependencies
tsTypeScript client generation (ESM + full types)β€”
jsJavaScript client generation (ESM + JSDoc)β€”
ktKotlin client generationβ€”
rsRust client generation (Tokio async / std sync TCP)β€”
csC# / .NET client generation (HttpClient / WebSocket / TCP)β€”
codeOn-demand code generation at /code/{service}/{lang}http

Documentation

FeatureDescriptionDependencies
docInteractive API docs at /doc endpointhttp, js

Ordinary Routes

FeatureDescriptionDependencies
ordinary-httpRESTful JSON endpoints (#[get]/#[post]/etc.)http, serde, serde_json
ordinary-wsPath-based WebSocket endpoints (#[ws])ws, ordinary-http
ordinary-sseServer-Sent Events endpoints (#[sse])ordinary-http, futures-util

Protocol Options

FeatureDescription
seq64WS request ID uses i64 (default i32)
len64WS payload length uses u64 (default u32)
tag-u8Enum tag uses u8 (default)
tag-u16Enum tag uses u16
tag-u32Enum tag uses u32

TLS

FeatureDescriptionDependencies
tlsHTTPS via rustls with ALPN for HTTP/2, hot-reload via channelhttp, tokio-rustls, rustls, rustls-pemfile

Optional Capabilities

FeatureDescription
markerMarker-based conditional serialization via AFast::marker()
hookLifecycle hooks (before_request/on_connect/etc.), global and per-service
rate-limitNamed-policy rate limiting (FixedWindow/SlidingWindow/TokenBucket)
tlsTLS/HTTPS support via rustls with ALPN

Note: If the server uses seq64 or len64, generated client code must use the same feature, otherwise protocol mismatch will occur.

Copied to clipboard!