🐙 tako
Reference

Cargo feature graph

Every cargo feature on the tako-rs umbrella crate — transports, runtimes, plugins, extractors, observability, and the combos that don't compile.

Cargo feature graph

The umbrella crate tako-rs is the contractual surface. Sub-crate features are reached through it — for example, tako-rs/multipart turns on tako-extractors/multipart and tako-core/multipart together. You should never need to depend on tako-core, tako-extractors, tako-server, tako-server-pt, tako-streams, or tako-plugins directly.

To inspect the current shape locally:

cargo metadata --format-version 1 --no-deps \
  | jq '.packages[] | select(.name == "tako-rs") | .features'

Transports

FeatureDescriptionGates
(default)HTTP/1.1, WebSocket, SSE, raw TCP / UDP, Unix sockets, PROXY protocol.always on
tlsServer-side HTTPS via rustls.tako-server/tls, tako-core/tls
http2HTTP/2 cleartext (h2c) and ALPN-negotiated h2 over TLS.tako-server/http2, tako-core/http2
http3HTTP/3 over QUIC; also enables the QUIC dependency tree in tako-streams.tako-server/http3, tako-streams/http3, tako-core/http3
webtransportWebTransport / raw QUIC sessions on top of http3.tako-streams/webtransport, tako-core/webtransport
vsockLinux vsock listener for sidecar workloads.tako-server/vsock

Runtime selection

FeatureDescriptionGates
compioSwitch the server to the compio runtime (io_uring / IOCP / kqueue). Mutually exclusive with the tokio path at build time.tako-core/compio, tako-server/compio, tako-streams/compio, tako-plugins/compio
compio-tlsTLS on compio. Implies compio.tako-server/compio-tls, tako-core/compio-tls
compio-wsWebSocket on compio. Implies compio.tako-streams/compio-ws, tako-core/compio-ws
per-threadThread-per-core deployment on tokio current-thread runtimes.tako-server-pt
per-thread-compioThread-per-core on compio. Implies per-thread.tako-server-pt/compio

See Runtime compatibility for the tokio vs compio trade-offs.

Plugins, middleware, signals

FeatureDescriptionGates
pluginsBundled middleware and plugins (CORS, compression, rate limiting, idempotency).tako-core/plugins, tako-plugins/plugins
signalsIn-process pub/sub bus, queue lifecycle signals, transport signals.tako-core/signals, tako-server/signals, tako-plugins/signals
ip-filterIpFilter middleware.tako-plugins/ip-filter
hmac-signatureHmacSignature middleware.tako-plugins/hmac-signature
json-schemaJsonSchema request-validation middleware.tako-plugins/json-schema
zstdZstandard compression in plugins::compression. Implies plugins.tako-plugins/zstd, tako-core/zstd

Extractors

FeatureDescriptionGates
multipartMultipart / TakoTypedMultipart body extractors.tako-extractors/multipart, tako-core/multipart
protobufProtobuf<T> extractor via prost.tako-extractors/protobuf, tako-core/protobuf
simdUmbrella that enables both simd-sonic and simd-json-impl.tako-extractors/simd, tako-core/simd
simd-sonicsonic-rs-backed JSON path.tako-extractors/simd-sonic, tako-core/simd-sonic
simd-json-implsimd-json-backed JSON path.tako-extractors/simd-json-impl, tako-core/simd-json-impl
typed-headerTypedHeader<H> extractor (via headers).tako-extractors/typed-header
zero-copy-extractorsBorrowed variants of Json, Form, Query, HeaderMap.tako-extractors/zero-copy-extractors, tako-core/zero-copy-extractors
validatorValidated<T> adapter for the validator crate.tako-extractors/validator
gardeValidated<T> adapter for the garde crate.tako-extractors/garde
jwt-simpleJWT decode / verify backed by jwt-simple.tako-extractors/jwt-simple, tako-plugins/jwt-simple, tako-core/jwt-simple
ahashSwap the default request hasher for ahash across the workspace.tako-core/ahash, tako-extractors/ahash, tako-plugins/ahash

Outbound client

FeatureDescriptionGates
clienttako::client outbound HTTP client (hyper-util legacy client). Off by default. Not available with compio.tako-core/client
native-certsUse the OS trust store via rustls-native-certs instead of the bundled webpki-roots snapshot. Implies client.tako-core/native-certs
file-streamFile streaming, range requests, conditional GET, precompressed sidecars.tako-streams/file-stream, tako-core/file-stream

Docs, GraphQL, gRPC, OpenAPI

FeatureDescriptionGates
async-graphqlGraphQL HTTP / WebSocket handlers.tako-core/async-graphql
graphiqlGraphiQL IDE endpoint.tako-core/graphiql
grpcgRPC unary RPCs via prost.tako-core/grpc
utoipaOpenAPI docs via utoipa.tako-core/utoipa
utoipa-yamlYAML output for the utoipa integration. Implies utoipa.tako-core/utoipa-yaml
vesperaOpenAPI docs via vespera.tako-core/vespera

Observability backends

FeatureDescriptionGates
tako-tracingtracing-subscriber integration helpers.tako-core/tako-tracing, tako-server/tako-tracing
metrics-prometheusPrometheus scrape endpoint + histogram. Implies plugins and signals.tako-plugins/metrics-prometheus, tako-core/metrics-prometheus
metrics-opentelemetryOpenTelemetry OTLP metrics export. Implies plugins and signals.tako-plugins/metrics-opentelemetry, tako-core/metrics-opentelemetry

Allocator

FeatureDescriptionGates
jemallocSet tikv-jemallocator as the global allocator.tako-core/jemalloc, dep:tikv-jemallocator

Combinations that don't compile

  • Enabling both the tokio and compio runtime sides at once is not supported. cargo build --all-features therefore does not build a runnable binary — see Runtime compatibility.
  • client requires tokio. With compio on, the tako::client re-export is intentionally absent.

New cargo features may appear in minor releases. Removing or renaming an existing feature is a major-version event — see API stability for the full policy.

On this page