Day 0 = RFC publication 2026-06-16. ★ Stars are approximate (fetched ~2026-07-20).
Tracking is split by role: servers (inbound), clients (outbound), edge (proxies/caches), and specs/docs. The same monorepo can appear in more than one table when server and client surfaces differ (e.g. Spring Framework). Stack names link to the project home when available.
Stacks that accept or route QUERY.
| Stack | Lang | Status | ★ Stars | PR / issue | Days after RFC | Notes |
|---|---|---|---|---|---|---|
| Go (net/http) | Go | 135,304 | Issue #80058 — open · PR #80134 — open | +2 issue · PR +8 | Raw method strings work; MethodQuery not merged |
|
| Node.js (core) | JS / C++ | ✅ Shipped | 118,327 | v21.7.2 release (llhttp 9.2.0) | −804 | Earliest shipper (parse/route QUERY) |
| Deno | Rust / TS | 107,760 | Issue #36186 — open | +34 | Feature request; Deno.serve may accept method string |
|
| FastAPI | Python | ❓ Nothing | 100,699 | none found | n/a | No dedicated RFC 10008 tracking found |
| Bun | Zig / TS | ✅ Works (generic) | 94,911 | Issue #34839 — closed | +34 | Bun.serve + body verified; not full RFC semantics |
| Django | Python | ❓ Nothing | 88,188 | none found | n/a | No dedicated RFC 10008 tracking found |
CPython (http.server) |
Python / C | 73,835 | Issue #153309 — open · PR #153310 — open | +22 | Stdlib HTTP support / method constant (shared issue with client) | |
| Express | JavaScript | ✅ Works | 69,226 | Issue #5615 — closed completed | −787 | Works on QUERY-capable Node |
| Spring MVC / WebFlux | Java | ❌ Not shipped | 60,128 | PR #34993 — open (fixes #32975); #36988 closed duplicate | −378 · revived +15–17 | RequestMethod / @RequestMapping QUERY; community-approved Jul 3 |
| Rails | Ruby | 58,634 | PR #57973 — open (forum) | ~+6 → PR +17 | Core reviewed +30 | |
| PHP (CLI server) | PHP / C | ✅ Merged | 40,245 | PR #22615 — merged | +20 · merged +22 | Built-in dev server accepts QUERY (was 501) |
| ASP.NET Core | C# | 38,222 | PR #65714 — shipped in 11 Preview 4 | −35 | Server + OpenAPI operation type | |
| Fastify | JavaScript | ✅ Shipped (main) | 36,767 | PR #6832 — merged · closes #6807 | +5 · merged +30 | First-class QUERY routing; release tag TBC |
| Laravel (routing) | PHP | 34,802 | PR #60810 closed (L14); #60655 | +30 | Full route support aimed at Laravel 14 | |
| Axum | Rust | 26,571 | Issue #3799 — open · PR #3801 — open | 0 / +1 | QUERY method routing | |
| aiohttp (server) | Python | ✅ Merged | 16,502 | Issue #13160 — closed · PR #13174 — merged | +30 · merged +34 | C parser recognizes QUERY |
| Tomcat | Java | ✅ Merged | 8,211 | PR #1026 — merged | +15 | Release placement TBC |
| Jetty | Java | 4,091 | PR #15316 — open | +5 | Targeted at Jetty 13.0.x (not 12.x) | |
| Undertow | Java | ❓ Nothing | 3,756 | none found | n/a | Servlet container (Spring Boot option); no RFC tracking found |
| Jakarta Servlet | Java (spec) | ✅ Completed | 325 | Issue #1068 — closed completed | +9 · closed ≤+34 | Spec-level container contract; cites Tomcat PR |
| W3C LWS | Spec | ✅ Merged, contested | 26 | PR #179 — merged | +10 · merged ≈+34 | QUERY for Search / Type Index; GET/POST fallback debated |
Stacks that send QUERY.
| Stack | Lang | Status | ★ Stars | PR / issue | Days after RFC | Notes |
|---|---|---|---|---|---|---|
| Go (net/http) | Go | 135,304 | Issue #80058 — open · PR #80134 — open | +2 · +8 | NewRequest("QUERY", …) works; constant pending |
|
Deno (fetch) |
Rust / TS | 107,760 | Issue #36186 — open | +34 | Feature request; method string may already work | |
Bun (fetch / node:http) |
Zig / TS | ✅ Works (generic) | 94,911 | Issue #34839 — closed | +34 | Client + body verified |
CPython (http.client) |
Python / C | 73,835 | Issue #153309 — open · PR #153310 — open | +22 | Stdlib client / method constant | |
| Spring RestClient / WebClient | Java | ❓ Via mapping PR | 60,128 | Same Framework track as server (#34993); no RestClient-specific issue found | −378+ | Fluent clients (spring-web); often on JDK HC / Apache HC5 / Netty |
| requests | Python | ❌ Declined | 54,136 | Issue #7558 — closed not planned · PR #7577 — closed unmerged | +18 / +24 | No first-class requests.query() |
| curl | C | ✅ Generic | 42,429 | none needed | n/a | -X QUERY works today |
Laravel Http::query() |
PHP | ✅ Merged | 34,802 | PR #60663 — merged | +17 | Client helper on 13.x (routing separate) |
| Guzzle | PHP | ✅ Works + redirects | 23,452 | Issue #3699 — closed · PR #3702 — merged | +8 | Method string + redirect middleware fixed for QUERY |
JDK HttpClient (java.net.http) |
Java | ✅ Generic | 23,126 | none found | n/a | Java 11+; HttpRequest.newBuilder().method("QUERY", body) — arbitrary methods with body |
| aiohttp (client) | Python | ✅ Merged | 16,502 | Issue #13160 · PR #13174 — merged | +30 · +34 | Shared parser fix benefits client + server |
| hyper | Rust | ✅ Via http |
16,232 | inherits hyperium/http#798 | 0 | Low-level client/server; http::Method::QUERY |
| httpx | Python | ❓ Nothing | 15,356 | none found | n/a | Arbitrary methods usually work |
| reqwest | Rust | ❌ Declined | 11,738 | Issue #3056 — closed not planned | 0 | High-level async (on hyper); uses http crate methods |
| Node.js / undici | JavaScript | ✅ Shipped | 7,651 | Issue #5454 · PR #5459 — merged | +11 / +13 · npm 8.6.0 at +16 | Node’s fetch implementation; body-aware cache key work |
| urllib3 | Python | ❓ Nothing | 4,041 | none found | n/a | Underpins many Python clients |
| ureq | Rust | 2,158 | Issue #1177 — open | +6 (Jun 22) | Blocking client; request for ureq::query / Agent::query |
|
| Apache HttpClient 5 | Java | 1,533 | PR #840 — merged · PR #852 — open (cache) | +15 method · cache +30 | Method/redirect support on master; body-keyed HTTP cache in review (not Commons HttpClient 3.x EOL) | |
Rust http crate |
Rust | ✅ Shipped | 1,362 | PR #798 — merged · closes #743 | 0 | Method::QUERY; safe + idempotent |
| isahc | Rust | ❓ Nothing | 779 | none found | n/a | libcurl-backed; custom methods typically work |
| attohttpc | Rust | ❓ Nothing | 293 | none found | n/a | Lightweight blocking; no RFC tracking found |
| Inrupt solid-client (JS) | TypeScript | ❓ Nothing | 244 | none found | n/a | Solid data client; needed once pods speak QUERY |
| Inrupt solid-client-authn (JS) | TypeScript | ❓ Nothing | 77 | none found | n/a | Authenticated fetch wrapper |
| Inrupt solid-client (Java) | Java | ❓ Nothing | 16 | none found | n/a | Java Solid client |
Infrastructure in front of apps. Body-aware caching and method allow-lists matter most (RFC 10008 §2.7).
| Stack | Lang | Status | ★ Stars | PR / issue | Days after RFC | Notes |
|---|---|---|---|---|---|---|
| Traefik | Go | 64,053 | Issue #13544 — open | +34 (Jul 20) | End-to-end QUERY: forward, middlewares, body-keyed cache | |
| Kong | Lua / Nginx | 43,822 | Discussion #14944 — open | +34 (Jul 20) | Proxy, plugins, body-keyed Proxy Cache; retries list missing QUERY | |
| nginx | C | 31,171 | PR #1488 — open · (#1511 closed) | +6 | Recognition only; body cache key TBD | |
| Envoy | C++ | ❓ Nothing | 28,606 | none found | n/a | No public RFC 10008 tracking found |
| Cloudflare workerd | C++ | 8,411 | Issue #6849 — open | +14 | Body-keyed QUERY caching (Cache API) | |
| HAProxy | C | ❓ Nothing | 6,713 | none found | n/a | No public RFC 10008 tracking found |
| Varnish | C | ❓ Nothing | 4,049 | none found | n/a | Cache key for QUERY body untracked |
| Apache httpd | C | ❓ Nothing | 4,034 | none found | n/a | Passthrough / proxy path; discuss on dev@httpd |
| Squid | C++ | ❓ Nothing | 3,027 | none found | n/a | No public RFC 10008 tracking found |
| Managed CDNs (CloudFront, Fastly, Akamai, ALB, …) | — | ❓ Opaque | — | vendor docs / changelogs | n/a | Hard to track via GitHub; verify per product |
| Stack | Lang | Status | ★ Stars | PR / issue | Days after RFC | Notes |
|---|---|---|---|---|---|---|
| OpenAPI | Spec | ✅ Spec-level | 31,098 | 3.2.0 announcement | −266 | Documents QUERY operations (client + server codegen) |
| MDN | Docs | 10,886 | PR #44568 — open · Issue #44665 — open | +8 / +22 | QUERY method + Accept-Query docs |
|
| WHATWG HTML | Spec | 9,329 | Issue #12594 — open | +1 | <form method="query"> |
|
| Browsers / fetch() | Spec | ✅ Works, unofficial | 2,243 | Issue #1938 — open | +14 | Client surface in browsers; Mozilla #1430 open · WebKit #692 closed invalid |
| RFC 10008 | Spec | ✅ Published | — | datatracker · HTTP WG | 0 | IESG approval Nov 20, 2025 = −208; query-method |
- jeswr/http-query-adoption — retired; content assimilated into the tables above
- Digest-based QUERY cache negotiation (proposal): httpwg/http-extensions#3469 → HTTP WG list