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

FeatureDescriptionDependencies
httpHTTP serverhyper, hyper-util, http-body-util
wsWebSocket servertokio-tungstenite, futures-util
tcpTCP server (length-prefix framing)β€”
tsTypeScript client generation (ESM + full types)β€”
jsJavaScript client generation (ESM + JSDoc)β€”
ktKotlin client generationβ€”
rsRust client generation (Tokio async / std sync TCP)β€”
codeOn-demand code generation at /code/{service}/{lang}http
docInteractive API docs at /doc endpointhttp, js
ordinary-httpRESTful JSON endpoints (GET/POST/PUT/DELETE)http, serde, serde_json
seq64WS request ID uses i64 (default i32)β€”
len64WS payload length uses u64 (default u32)β€”
tag-u8Enum tag uses u8 (default)afastdata/tag-u8
tag-u16Enum tag uses u16afastdata/tag-u16
tag-u32Enum tag uses u32afastdata/tag-u32
markerEnable marker-based conditional serialization; set marker via AFast::marker() (default "afast")β€”
hookLifecycle hooks (before_request/on_response/on_error/on_connect/on_disconnect), global and per-serviceβ€”
rate-limitNamed-policy rate limiting (FixedWindow/SlidingWindow/TokenBucket), pluggable store (built-in InMemoryStore)β€”

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