You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **Tako** (*"octopus"* in Japanese) is a pragmatic, ergonomic and extensible Rust framework for services that go beyond plain HTTP.
8
8
> Build one cohesive application across HTTP/1.1, HTTP/2, HTTP/3, WebSocket, SSE, gRPC, TCP, UDP, Unix sockets, and WebTransport with a single routing, middleware, and observability model.
Tako is built for teams that want fewer moving parts in production:
13
-
14
-
***One service, many transports** — Serve REST, WebSockets, SSE, gRPC, raw TCP/UDP, Unix sockets, and QUIC-based workloads without switching frameworks.
15
-
***One mental model, two runtimes** — Use the same framework style on **Tokio** or **Compio** depending on the deployment constraints.
16
-
***Application primitives included** — Middleware, auth, metrics, signals, queues, graceful shutdown, and streaming are part of the framework story, not an afterthought.
17
-
***Performance knobs when they matter** — SIMD JSON, optional zero-copy extractors, compression, jemalloc, and HTTP/3 support are available without fragmenting the API.
18
-
***Strong fit for real systems** — API backends, realtime apps, protocol gateways, internal platforms, and edge-facing services.
19
-
20
-
## ✨ Highlights
21
-
22
-
***Multi-transport by design** — HTTP/1.1, HTTP/2, HTTP/3 (QUIC), WebSocket, WebTransport, SSE, gRPC, TCP, UDP, Unix sockets, and PROXY protocol.
23
-
***Dual runtime support** — First-class support for both **Tokio** and **Compio**, including TLS and HTTP/2 on both sides where supported.
***Realtime-ready** — Streaming responses, SSE, WebSockets, GraphQL subscriptions, HTTP/3, and WebTransport under one crate.
29
-
***Docs and API surface included** — OpenAPI via `utoipa` or `vespera`, GraphiQL support, and a growing example suite for common deployment patterns.
30
-
31
-
## Best Fit
32
-
33
-
Choose Tako when your service needs one or more of these:
34
-
35
-
***More than REST** — You need HTTP APIs plus WebSockets, SSE, gRPC, TCP, UDP, or QUIC in the same application.
36
-
***Realtime coordination** — You want built-in signals, queues, and streaming primitives instead of composing everything manually.
37
-
***Framework consolidation** — You would rather depend on one coherent crate than glue together several partially overlapping libraries.
38
-
***Protocol-heavy infrastructure** — Gateways, internal platforms, telemetry collectors, control planes, or edge services are a particularly strong fit.
39
-
40
-
## Feature Matrix
41
-
42
-
### Transports & Protocols
43
-
44
-
| Protocol | Tokio | Compio | Feature flag |
45
-
|---|---|---|---|
46
-
| HTTP/1.1 | ✅ | ✅ |*default*|
47
-
| HTTP/2 | ✅ | ✅ |`http2`|
48
-
| HTTP/3 (QUIC) | ✅ | — |`http3`|
49
-
| TLS (rustls) | ✅ | ✅ |`tls` / `compio-tls`|
50
-
| WebSocket | ✅ | ✅ |*default* / `compio-ws`|
51
-
| WebTransport | ✅ | — |`webtransport`|
52
-
| SSE | ✅ | ✅ |*default*|
53
-
| gRPC (unary) | ✅ | — |`grpc`|
54
-
| Raw TCP | ✅ | — |*default*|
55
-
| Raw UDP | ✅ | — |*default*|
56
-
| Unix sockets | ✅ | — |*default* (unix only) |
57
-
| PROXY protocol v1/v2 | ✅ | — |*default*|
58
-
59
-
### Extractors (22+)
60
-
61
-
| Extractor | Description |
62
-
|---|---|
63
-
|`Json<T>`| JSON body (with optional SIMD acceleration) |
|`zero-copy-extractors`| Zero-copy body extraction |
134
-
|`client`| Outbound HTTP client |
135
-
136
-
## Documentation
137
-
138
-
-**Guide & reference:**[tako.rust-dd.com](https://tako.rust-dd.com) — the full handbook: getting started, transports, extractors, middleware, concepts, and reference.
Benchmarks are machine- and thermal-state-dependent, so treat these as local baselines, not universal claims. Axum and Actix were rerun with minimal temporary hello-world servers using the same `wrk` command.
170
-
171
-
172
-
## 📦 Installation
173
-
174
-
Add **Tako** to your `Cargo.toml`:
14
+
-**One service, many transports** — REST, WebSockets, SSE, gRPC, raw TCP/UDP, Unix sockets, and QUIC without switching frameworks.
15
+
-**One model, two runtimes** — the same framework style on **Tokio** or **Compio**, TLS and HTTP/2 on both.
16
+
-**Batteries included** — middleware, auth, metrics, signals, queues, graceful shutdown, and streaming are part of the framework, not an afterthought.
17
+
-**Performance when it matters** — SIMD JSON, optional zero-copy extractors, brotli/gzip/deflate/zstd, jemalloc, and HTTP/3 — without fragmenting the API.
0 commit comments