RFC 10008 / adoption
The HTTP QUERY MethodPublished 2026-06-16Refreshed 2026-09-04 (day +80)

Who supports HTTP QUERY?

A census of 161 projects — servers, clients, proxies, caches and tooling — tracked against RFC 10008 since publication. Search for your stack, or filter by status.

Tracking is split by role: servers (inbound), clients (outbound), edge (proxies/caches), and specs/docs/tooling. 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.

Six weekly snapshots, reconstructed from this repository's own history: the total has tripled while the “not yet” count has barely moved.

See the adoption curve →
No rows match. Try a different search, or clear the filters.

Servers & frameworks (inbound)72 rows

Stacks that accept or route QUERY.

StackLangStatus★ StarsPR / issueDays after RFCNotes
Next.jsTypeScriptPR open142,090+64 · out of draft by +80QUERY as a Route Handler method export; the PR is no longer a draft and is being kept rebased with tests passing (+80), but no maintainer has reviewed it yet
Go (net/http)GoAccepted & landed137,502+2 issue · likely accept +65 · accepted +72MethodQuery proposal accepted and closed (+72); MethodQuery = "QUERY" // RFC 10008 is on master (Go 1.28 dev cycle). Community PR #80134 idle since +31
Node.js (core)JS / C++Shipped120,619−804Earliest shipper (parse/route QUERY); llhttp reclassified QUERY from experimental to standardized (llhttp#868, merged +44, llhttp 9.4.3)
DenoRust / TSOpen108,367+34Feature request; Deno.serve may accept method string; idle since +36
FastAPIPythonTracked (discussion)102,077+9 · active +78No issue/PR, but the discussion moved on both blockers this week. The ASGI layer underneath, Starlette, merged QUERY at +75, and FastAPI pins starlette>=0.46.0, so that half is done. What remains is doc generation: Swagger UI now supports OpenAPI 3.2, but FastAPI's fallback UI ReDoc 2 is gated on 3.1 and would not classify query as an operation at all. FastAPI still says it tracks this internally and will implement "once we have time". Reported in issue #7
BunZig / TSWorks (generic)95,879+34Bun.serve + body verified; not full RFC semantics
GinGoPR open89,172+59 · issue +13First-class router.QUERY support; the branch is kept green (+80) but there has been no review comment since +59 — the contributor had to open a separate dependency-bump PR to clear pre-existing Trivy failures on master before CI would go green. Ecosystem: gin-contrib/cors#192 (QUERY in DefaultConfig) still open, unreviewed since +73
DjangoPythonPR in review89,934ticket +39 · accepted +40 · PR +74 · active +79The contributor's fork became a real PR against django/django at +74 and is drawing fellow review (+78–79). Design as accepted: QUERY content is exposed via HttpRequest.body and deliberately not parsed (the same treatment as PUT), leaving DEP 17 parsing room; the diff reaches admin, auth admin, the common/CSRF/conditional-GET middleware, utils.cache, the HTTP view decorators and the test client. The live scope question is whether cache/Vary support must land in the same PR or a follow-up ticket — a second contributor has offered to write it either way. DRF work is being prototyped separately. Reported in issue #6
ElasticsearchJavaDeclined77,890+22QUERY /{index}/_search proposed and declined by a maintainer: the value is intermediary caching, "not something we see users doing in practice", and correct caching is hard when bodies contain now. Explicitly left open to reconsider later
NestJSTypeScriptReleased76,571+3 · merged & released +59QUERY routing in core + Express/Fastify platforms; carried into v12.0.0 (+72); e2e tests #17310 merged. The satellite packages are still catching up: the OpenAPI module PR is separate (see Specs) and the HTTP module has an unreviewed PR (nestjs/axios#1785, +76)
CPython (http.server)Python / COpen75,977+22 · new PR +59Stdlib HTTP support / method constant; original PR #153310 closed unmerged, picked up fresh by a new contributor (+59), quiet since
FlaskPythonMerged (3.2.0)72,166+7 · merged +56app.query() route decorator is in the unreleased 3.2.0 changelog (latest release is 3.1.3); Werkzeug test-client Client.query() merged too (#3219, +44, also unreleased); flask-cors QUERY-by-default PR now a draft (#413, +62)
ExpressJavaScriptWorks69,417−787Works on QUERY-capable Node
Spring MVC / WebFluxJavaMerged (unreleased)60,221−378 · revived +15–17 · merged +65RequestMethod.QUERY / @RequestMapping support is on main — but not in v7.1.0-M1 (tagged the same day, +65), and no milestone has been cut since, so 15 days on there is still no build carrying it. Convenience @QueryMapping / @QueryExchange / DSL follow-up #37185 closed (+66): enhancements considered "one by one" as adoption shows
RailsRubyMerged (8.2)58,751~+6 → PR +17 · merged +59Merged to main by rails core, milestone 8.2.0 (no 8.2 release yet); routing-assertion follow-up #58623 merged +79, so method: :all now exercises PATCH and QUERY too. Active Resource added a client-side QUERY as well (activeresource#476, merged +67)
PHP (CLI server)PHP / CMerged40,360+20 · merged +22Built-in dev server accepts QUERY (was 501)
FiberGoReleased (v3)40,125+2 · merged +9Early full adopter: routing, completion follow-up and QUERY cache body-key hashing all merged to main (v3); v3.4.0 tagged +16, v3.5.0 +58; tracking proposal #4512 closed completed (+58)
ASP.NET CoreC#Preview38,418−35Server + OpenAPI operation type; original issue #61089 closed completed (+49); MapQuery/attribute-routing follow-up filed +55, still open and active (+71)
FastifyJavaScriptReleased37,089+5 · merged +30 · release +44First-class QUERY routing; shipped in v5.11.0 and carried through the v5.12.x line and the new v6.0.0-alpha series (+80); empty-body fix #6929 still open (+54, active +80), and a PR documenting the fastify.query() shorthand opened at +77 (#7004)
Laravel (routing)PHPMerged for L1434,893+20Route::query() on master → ships with Laravel 14; client helper separate (13.x)
HonoTypeScriptReleased32,088+16 · release +48First-class app.query() routing; QUERY-aware ETag (#5111), CORS (#5115) and cache (#5119) all in v4.13.0; zod-openapi middleware QUERY support merged (middleware#2086, +58)
AxumRustMerged (main)27,0140 / +1 · merged +48MethodFilter::QUERY, routing::query[_service], MethodRouter::query[_service] in the unreleased changelog; still no release (latest 0.8.9, Apr 2026). Ecosystem: axum-test QUERY support merged (#211, +65)
VaporSwiftApproved, unblocked26,190+42 · approved +43 · unblocked +79Router QUERY methods; the merge was held for swift-http-types 1.7.0, which shipped at +79 with "Make QUERY method public" (swift-http-types#130). The blocker is gone and the PR is approved — it has simply not been touched since +73. Upstream SwiftNIO still has its own open PR (see Clients)
Actix WebRustPR open24,818+22 · touched +76QUERY added to the framework's method handling; branch kept current but no maintainer review yet
fasthttpGoMerged23,461+60 · merged +73High-performance server + client lib; the maintainer merged QUERY method support 13 days after it opened, with a one-word review. No tagged release carries it yet (latest v1.73.0, +41)
PhoenixElixirPR open23,139+9 · active +60Router QUERY support; the Plug layer underneath already merged it (see Plug row)
chiGoMerged22,778+17 · merged +19 · release +20QUERY added to the router's method set; landed two days after the first request (an earlier attempt, #1129, was superseded) and tagged in v5.3.1 the next day — the fastest request-to-release turnaround in the tracker
TornadoPythonPR open (2nd try)22,176+18 · second PR closed +42The first PR (+18) is still open and untouched; a competing PR was opened and closed the same day (+42). No maintainer response on either
GoFrGoIn review20,952+38 · active +80App.QUERY routes + client Query. A second maintainer review at +78 requested more changes — case-insensitive Content-Type matching, and one shared "which media types can Bind decode" list instead of two that drift — and the author is turning each round around the same day. Still moving at +80, the most actively reviewed open QUERY PR in the tracker
SvelteKitTypeScriptMerged (v3)20,778+58QUERY handlers in +server.js; ships with SvelteKit 3 (still 3.0.0-next.*). Sentry's SvelteKit SDK added a QUERY e2e test (sentry-javascript#23501, merged +69)
ElysiaTypeScriptPR open19,074+25QUERY routing for the Bun-first framework; no review yet
Nim (std/asynchttpserver)NimPR open18,215+7 · active +72QUERY in the stdlib HTTP method type (server + client); one of the earliest post-RFC PRs anywhere and still moving
aiohttp (server)PythonReleased16,532+30 · merged +34C parser recognizes QUERY; shipped in 3.14.2 (+34); METH_QUERY + idempotent classification merged for 3.15 (#13301, +48; backport +56; 3.15 still not out, latest 3.14.3)
hapiJavaScriptPR open14,792+70Types-level fix adding QUERY to the accepted method union; runtime routing on QUERY-capable Node is a separate question
Vert.x (core)JavaMerged14,684+2 · merged +20HttpMethod.QUERY in core, merged fast; the Vert.x Web router PR on top is still in review (see below)
Yii2PHPPR open14,297+59 · PR +61 · active +70Framework QUERY support; QUERY method constant tracked separately in yiisoft/http (#70 / PR #71, +59)
OpenSearchJavaPR open13,656+22 · active +37QUERY /{index}/_search, the same proposal Elasticsearch declined — here it is still live
Play FrameworkScala / JavaPR open12,617+21 · active +36Router + request handling; the standalone client library already merged its half (play-ws#1366, +69)
StarlettePythonMerged (unreleased)12,592+75The ASGI layer under FastAPI — QUERY accepted in routing and method handling. The maintainer landed his own branch on main the day it was opened (+75) and closed the two community PRs (+9 routing, +20 test client) in its favour. Removes the ASGI-side blocker for FastAPI; not in a release yet (latest 1.6.0, +53)
SlimPHPMerged (v5)12,276v5 merged +70 · 4.x PR +43query() route method landed on the v5 branch (+70). The 4.x backport is still open: the maintainer's objection was that adding query() to RouteCollectorProxyInterface breaks BC, and he resolved it himself by pushing a @method docblock annotation instead (+67) — but 4.15.3 shipped at +77 without it
gqlgenGoOpen10,759+66GraphQL server library tracking QUERY (natural fit for GraphQL-over-HTTP reads); no PR yet
FrappePythonMerged10,697+26 · merged +35Merged to develop
GrapeRubyMerged10,004+78 · merged +78Ruby's main REST-API DSL merged QUERY the day it was opened; the maintainer's note — "I'm excited to beat Rack and Rails on QUERY support" — is accurate, since Rails' merge is still unreleased
Django NinjaPythonPR open9,180+57 · active +62@api.query() operation support; still ahead of Django core, whose own PR only opened at +74. v1.7.0 shipped at +75 without it — the PR has been quiet since +62
TomcatJavaCommitted (12.x)8,240+15Landed by hand "based on PR #1026… with a few minor variations"; Tomcat 12 only (needs Servlet API change)
MicronautJavaMerged6,424+16 · merged +31QUERY across the server and declarative-client surfaces; requested at +16, merged 15 days later
h3TypeScriptReleased (v2 rc)5,417+21 · shipped +23The HTTP layer under Nitro/Nuxt: QUERY in HTTPMethod, plus requireContentType and appendAcceptQuery utils; released in v2.0.1-rc.24
ArmeriaJavaMerged5,137+31 · merged +48Server + client surfaces; released and carried forward through 1.41.0 (+52) and 1.41.1 (+77)
JettyJavaOpen4,092+5Targeted at Jetty 13.0.x (not 12.x); no discussion since +29, but touched again +65
KemalCrystalReleased (1.13.0)3,914+13 · merged +59 · release +69query route DSL, Kemal::Router#query and filters shipped in v1.13.0 (+69) — one of the first frameworks to go from merge to tagged release. The surrounding ecosystem followed within a week: a query helper in spec-kemal and docs both merged +75. Crystal stdlib client PR separate (see Clients)
HelidonJavaMaintainer taking over3,817+29 · handover +79Oracle's microservices framework; WebServer + WebClient QUERY support. The contributor was stuck for weeks on Oracle's contributor agreement (the OCA download 404s outside the US), and at +79 a Helidon maintainer said he will take the work over — rebasing onto a PR of his own with the contributor kept as co-author, because it touches "quite a critical part of the system" — then close #12178
UndertowJavaNothing3,759n/aServlet container (Spring Boot option); no RFC tracking found
PlugElixirMerged3,014+9Among the earliest post-RFC merges; the HTTP layer under Phoenix (whose router PR is still open)
Reactor NettyJavaPR open2,777+21 · active +67The reactive HTTP layer under Spring WebFlux; server + client QUERY support
http4sScalaPR open2,626+24QUERY for the Scala server/client stack; no review yet
MercuriusJavaScriptPR open2,487+67GraphQL server for Fastify — GraphQL-over-HTTP reads over QUERY, following Fastify's released routing
WolverineC#Merged2,330+19 · merged +19.NET messaging / HTTP framework; QUERY verb support in Wolverine.HTTP merged the day it was opened — one of the earliest .NET-side adopters, well ahead of ASP.NET Core's own MapQuery follow-up
TempestPHPOpen2,262+73 · active +79Report that the framework's default dev server — PHP's built-in server — refuses QUERY, so the method cannot be exercised locally. php-src's fix is merged but unreleased, so the maintainer is waiting on PHP 8.6 and has accepted a docs entry in the meantime; a contributor suggests the FrankenPHP/Caddy image as a workaround
Azure FunctionsC#Open2,021+22QUERY in HTTP triggers; the Python worker library merged its side already (azure-functions-python-library#350, +36)
ServantHaskellPR open1,967+28 · PR +57 · active +69Type-level QUERY verb; upstream http-types still lacks the constant (only a small fork merged it, Vlix#34, +64)
reititClojureMerged1,581+7 · merged +76Data-driven router for Clojure/Script; QUERY method added, documented and tested. One of the earliest post-RFC PRs anywhere, it sat 69 days before a maintainer put it "in mergeable shape" himself and merged it (+76)
Koa (@koa/bodyparser)JavaScriptPR open1,325+58Parse QUERY request bodies; routing already works on QUERY-capable Node (http.METHODS)
Vert.x WebJavaIn review1,150+21 · active +78Router layer on top of the merged core support; the maintainer is engaged but says he cannot explain why this PR's CI hangs while master's passes, and the branch is already rebased — stuck there since +72
APIFlaskPythonCompleted1,136+13 · closed +57Flask-based API framework with built-in OpenAPI; QUERY support tracked and closed out ahead of Flask's own 3.2.0 release
ComunicaTypeScriptMerged580+77 · merged +77Knowledge-graph / SPARQL query engine for JavaScript — merged same-day with full patch coverage. Directly relevant to the LWS work above: it is the query layer many Solid apps sit on, and it moved before the SPARQL protocol spec did
Jakarta REST (JAX-RS)Java (spec)No consensus, volunteer waiting400+3 · revived +79A committer offered to implement but reported "no majority in team for adopting QUERY yet", arguing Jakarta REST is independent of the Servlet change. After 62 silent days a new contributor volunteered at +79 for the whole scope — @QUERY annotation and HttpMethod.QUERY, query(Entity) on SyncInvoker/AsyncInvoker/RxInvoker, plus spec text and TCK tests — and asked to be assigned. No committer has answered yet, and the underlying vote has not changed
HanamiRubyMerged361+64 · merged +80Conditional QUERY support in the router, merged without discussion 16 days after it opened — the third Ruby router to land QUERY after Rails and Grape
Jakarta ServletJava (spec)Completed325+9 · closed ≤+34Spec-level container contract (Servlet 6.2); cited by the Tomcat 12 work
GenHTTPC#Open286+13 · active +78Embeddable pure-C# web server; QUERY verb request filed two weeks after the RFC and picked back up at +78
Marko RunTypeScriptReleased175+59 · merged +62 · released +63Marko's application framework; +query route handlers merged and deliberately shipped as a patch while the project is pre-1.0, with the docs updated alongside (website#277, +66)
LilyaPythonMerged67+19 · merged +19ASGI toolkit; merged QUERY the day it was opened — 56 days before Starlette, the layer it competes with, landed the same feature
W3C LWSSpecMerged, contested30+10 · merged ≈+34 · issue touched +76QUERY for Search / Type Index; the GET/POST fallback must resolve before CR, and an editor's position at +66 is that they are "monitoring the state of QUERY adoption before deciding to make changes to the requirements and/or fallback methods in the type index" — i.e. this tracker's own subject is the gate. Solid ecosystem is beginning to follow: CommunitySolidServer/access-token-verifier#324 added QUERY to its allowed request methods (merged +72)

Clients (outbound)48 rows

Stacks that send QUERY.

StackLangStatus★ StarsPR / issueDays after RFCNotes
Go (net/http)GoAccepted & landed137,502+2 · accepted +72 · fix +64NewRequest("QUERY", …) works; MethodQuery constant now on master; §2.5 redirect fix (CL 803520) landed (+64)
Deno (fetch)Rust / TSOpen108,367+34Feature request; method string may already work; idle since +36
Bun (fetch / node:http)Zig / TSWorks (generic)95,879+34Client + body verified
CPython (http.client)Python / COpen75,977+22 · new PR +59Stdlib client / method constant; replacement PR after #153310 closed (+59)
Spring RestClient / WebClientJavaMerged (unreleased)60,221−378 → merged +65Core QUERY support merged with the server work but absent from v7.1.0-M1; @QueryExchange / client DSL shortcuts deferred (#37185 closed +66)
requestsPythonWatching adoption54,279+23 open issue · +18 / +24 closedNot a flat refusal: a maintainer confirms requests.request("QUERY", …) already works and the redirect caveat is "relatively trivial to handle", but declines to commit to a formal requests.query() API until server-framework implementations and real adoption rates are visible — "a formalized API is a long-lived maintenance contract that if we rush into is a net-negative". Explicitly revisitable. Reported in issue #5
CypressJavaScriptReleased51,022+47 · merged +48 · release +49cy.request() / cy.intercept() QUERY support; 2023-era issue #28282 closed completed; follow-up #34576 merged +57
curlCGeneric42,753n/a-X QUERY works today
Laravel Http::query()PHPMerged34,893+17Client helper on 13.x (routing separate, L14)
Symfony HttpClientPHPMerged (8.2)31,143+25 · merged +58CachingHttpClient QUERY support (body-aware) on the 8.2 branch; arbitrary methods already worked; the docs issue (symfony-docs#22642) closed completed at +72
GuzzlePHPWorks + redirects23,460+8Method string + redirect middleware fixed for QUERY
JDK HttpClient (java.net.http)JavaMinor internal semantics changes outstanding23,321n/aJava 11+; HttpRequest.newBuilder().method("QUERY", body) — arbitrary methods with body; JBS ticket untouched since Jan 2025
Crystal (HTTP::Client)CrystalPR open20,399+64 · active +77Stdlib client query method; pairs with Kemal's released server support, and is now the gap between Crystal apps and the Kemal/OWASP-Noir side of the ecosystem that already ships QUERY
.NET HttpClient (System.Net.Http)C#API approved18,239−459 proposal · approved +56QueryAsync surface passed .NET API review (+56); JSON extension methods split out to #132092 (+55); arbitrary methods already work via HttpRequestMessage
aiohttp (client)PythonReleased16,532+30 · +34Shared parser fix benefits client + server; shipped in 3.14.2; METH_QUERY + idempotent treatment merged for 3.15 (+48)
hyperRustVia http16,3020Low-level client/server; http::Method::QUERY, released in http v1.5.0 (+43)
httpxPythonUnmaintained15,460n/aArbitrary methods usually work, but the project is unmaintained — no release since 2024. pydantic's httpx2 fork (below) is its QUERY-capable successor; see issue #4
dioDartReleased12,840+27 · merged +28Dart/Flutter's dominant HTTP client: query() and queryUri() helpers, released in dio 5.11.0 (+39)
reqwestRustDeclined11,8070High-level async (on hyper); uses http crate methods
restyGoMerged11,775+35 · merged +38Merged to the v3 branch; not in a tagged release yet (latest v3.0.0-rc.3, +23)
OpenFeignJavaReleased (13.14)9,798+11 · merged +42 · release +64Declarative Java client; 13.14 ships QUERY in the method template and teaches HttpCacheInterceptor to treat QUERY as cacheable with a body hash in the cache key
JMeterJavaOpen9,527+42HTTP sampler method list; to-triage, no PR yet
SwiftNIOSwiftPR open8,511+23 · touched +28HTTPMethod.QUERY definitions; idle since +28. Now the last unmerged piece of the Swift stack — swift-http-types made QUERY public in 1.7.0 (+79) and Vapor's PR is approved and waiting
Node.js / undiciJavaScriptShipped7,687+11 / +13 · npm 8.6.0 at +16Node's fetch implementation; body-aware cache key work
REST AssuredJavaOpen7,141+26Java test DSL; request for a native query() alongside get()/post(). No maintainer response
ofetchTypeScriptTwo PRs open5,353+30 · second PR +61QUERY as payload-bearing method; two competing PRs, neither reviewed; sibling ocache PR closed unmerged (#31, +63)
reqGoMerged4,857+35 · merged +44Query / MustQuery helpers
urllib3PythonNothing4,054n/aUnderpins many Python clients
KiotaMultiOpen, scoped3,815+78 · active +78Microsoft's OpenAPI client generator. A maintainer engaged the same day: most language bindings model the HTTP method as an enum, so arbitrary verbs would be a source-breaking change — the agreed plan is to add QUERY as an enum member across the per-language abstractions first, release those packages, then teach the generator. Custom verbs deferred
SaloonPHPPR open2,438+26 · touched +32API-integration SDK builder; QUERY as a body-carrying method
ureqRustOpen2,180+6 (Jun 22)Blocking client; request for ureq::query / Agent::query; idle
TeslaElixirMerged2,078+20 · merged +23Elixir's middleware-based client; shipped in the v1.21 line
Apache HttpClient 5JavaIn 5.7-alpha11,534+15 method · cache +36 · alpha +58Method/redirect support released in 5.7-alpha1, tagged rel/v5.7-alpha1 at +58; body-keyed HTTP cache (#852) missed the alpha1 cut — next release
sttpScalaPR open1,504+29Client API PR still unreviewed; the shared model already merged (sttp-model #465, +27, in v1.7.18)
hackneyErlangMerged1,417+18 · merged +18First-class QUERY in Erlang's most-used HTTP client; merged the day it was opened, in the 4.7.x line
Active ResourceRubyMerged1,405+20 · merged +67Rails' REST object mapper; merged to main, no release since 2025
Rust http crateRustReleased1,3790 · release +43Method::QUERY; safe + idempotent. v1.5.0 unblocked axum + hyper downstream
httpx2PythonReleased1,340+28pydantic's maintained fork / successor of httpx and the natural migration path for httpx users who need QUERY — already ~a quarter of httpx's downloads and climbing (pypistats), and its star count grew 24% in the last week alone; QUERY merged & released same day in v2.6.0
retrofit.dartDartMerged1,184+34 · merged +58Generator QUERY support merged by the maintainer (+58); duplicate PRs #924/#925 closed; a dedicated Dart QUERY SDK (http_query) also exists — see Purpose-built projects
isahcRustNothing789n/alibcurl-backed; custom methods typically work
ChopperDartMerged749+26 · merged +29Source-generated Dart client; QUERY alongside the other verbs
attohttpcRustNothing294n/aLightweight blocking; no RFC tracking found
Gleam httpGleamOpen284+20 · active +75The language's shared client/server HTTP types; QUERY has to land here before any Gleam framework can route or send it
Inrupt solid-client (JS)TypeScriptNothing244n/aSolid data client; needed once pods speak QUERY
libwww-perlPerlBug open211+35LWP::UserAgent downgrades QUERY→GET on 302, contrary to RFC 10008 §2.5. The message layer beneath it did add QUERY (HTTP-Message#225, merged +38), so the remaining gap is the user agent's redirect handling
Inrupt solid-client-authn (JS)TypeScriptNothing77n/aAuthenticated fetch wrapper
HTTP::MessagePerlReleased32+17 · merged & tagged +38Request/response classes underneath libwww-perl now know QUERY; shipped in v7.04, cut the same day the PR merged
Inrupt solid-client (Java)JavaNothing17n/aJava Solid client

Edge, proxies & caches17 rows

Infrastructure in front of apps. Body-aware caching and method allow-lists matter most (RFC 10008 §2.7).

StackLangStatus★ StarsPR / issueDays after RFCNotes
CaddyGoNothing75,477n/aNo RFC 10008 tracking found. Built on Go's net/http, so raw QUERY requests likely pass through untouched today, but nothing in Caddy's repo/forum addresses QUERY explicitly; closed, pre-RFC #5166 shows unrecognized methods historically fell back rather than returning 501
TraefikGoCommunity PR64,739+34 · reply +41 · PR +55Maintainers invited contribution; community PR (QUERY in metrics labeling) moved to "review" status (+58) and has sat there since
KongLua / NginxNo response44,081+34Proxy, plugins, body-keyed Proxy Cache; retries list missing QUERY. Still zero comments at +80 — 46 days of silence, the longest unanswered thread in the tracker
nginxCOpen31,571+6Recognition only; body cache key TBD; idle since +9
EnvoyC++Merged28,857+41 / +46 · LGTM +56 · merged +69HTTP/1 + /2 + /3 QUERY support merged to main (+69) behind envoy.reloadable_features.http1_allow_query_method, default on. main is 1.40.0-dev and 1.40 has not been cut yet (latest is v1.39.1, +72), so the first mainstream proxy to land QUERY still has not shipped it
http-proxy-middlewareTypeScriptMerged11,132+19Node reverse-proxy middleware: QUERY proxying covered by tests
Cloudflare workerdC++Open8,682+14Body-keyed QUERY caching (Cache API); idle since +18
HAProxyCNothing6,829n/aNo public RFC 10008 tracking found
nghttp2CClosed (stale)5,046+38 · stale-bot +69 · closed +77HTTP/2 library behind curl, Envoy and others; the request for first-class QUERY never drew a single maintainer reply and the stale bot closed it at +77. Not a decision against QUERY — nobody looked
Apache httpdCNothing4,054n/aPassthrough / proxy path; discuss on dev@httpd
VarnishCNothing4,045n/aCache key for QUERY body untracked
SkipperGoOpen3,320+19 · active +64Zalando's HTTP router / reverse proxy; QUERY support request, still discussion-only
SquidC++Nothing3,082n/aNo public RFC 10008 tracking found
KrakenDGoOpen2,672+21API gateway; QUERY in the allowed-method set. No maintainer response
Apache Traffic ServerC++Nothing upstream1,980fork +69No QUERY issue or PR upstream. The work exists only in a contributor's fork, where QUERY is registered as a well-known method for the 10.2 line (merged +69); nothing has been proposed to apache/trafficserver itself
APISIX (lua-resty-radixtree)LuaPR open282+56 · active +70The route-matching library under Apache APISIX; QUERY in the method bitmap. Author is pinging maintainers for a CI re-run
Managed CDNs (CloudFront, Fastly, Akamai, ALB, …)Opaquen/aHard to track via GitHub; verify per product

Specs, docs & tooling25 rows

StackLangStatus★ StarsPR / issueDays after RFCNotes
k6GoOpen31,375+20Load testing; http.request('QUERY', …) already works, the ask is a http.query() convenience wrapper for parity. No maintainer response
OpenAPISpecSpec-level31,201−266Documents QUERY operations (client + server codegen). 3.2's query path-item key is the gate several tools are waiting on (FastAPI, NestJS Swagger, TypeSpec, Swashbuckle); #5426 updated the spec's HTTP-QUERY references to RFC 10008 for v3.3 (+22)
MDNDocsOpen, active10,968+8 / +22 · active +73QUERY method + Accept-Query docs. Another contributor offered to finish it (+70) and an MDN maintainer said at +73 they would look at what remains "next week" — that week has passed with no further comment, and the original author is still silent
WHATWG HTMLSpecOpen9,383+1 · last activity +27<form method="query">; a patch exists but overlaps a broader PUT/PATCH/DELETE form-method proposal, and no editor has weighed in
openapi-typescriptTypeScriptTwo PRs open8,352+29 · second PR +69Types + client generation for OpenAPI 3.2 query operations; two unreviewed PRs
ProxymanSwiftOpen6,960+24macOS/iOS HTTP debugger; QUERY in composer + rules
TypeSpecTypeScriptDesign in progress5,845+20 · active +71Maintainer: "now that it is a published standard we should definitely add support for it". Blocked on a naming collision — @query already means query parameter — with @queryVerb, @verb("query") and a Http.Verb namespace all on the table; the OpenAPI 3.2 emitter side is understood
Swashbuckle.AspNetCoreC#PR open5,499+48QUERY in SwaggerGen operation map + SwaggerUI SubmitMethod ("Try it out"); no review since +48
DalfoxGoMerged5,274+9 · merged +23XSS scanner: QUERY-method scanning so body-carrying reads are not skipped by security tooling
springdoc-openapiJavaOpen3,737+44 · touched +48Documentation catch-up for Spring's merged QUERY routing; needs the OpenAPI 3.2 operation type
HTTP ToolkitTypeScriptShipped3,619+40 · shipped +71Interception already worked; QUERY (and TRACE) are now listed on the Send page and in rule matchers
Browsers / fetch()SpecWorks, unofficial2,250+14 · idle since +15Client surface in browsers; Mozilla #1430 open (idle since +30) · WebKit position re-requested (#709 — open, +61, active +63) after #692 was closed unresolved
NestJS SwaggerTypeScriptPR open1,890+28 · active +70OpenAPI module catch-up for NestJS's released QUERY routing; query is gated behind OpenAPI 3.2 so 3.0 documents stay on-spec
zod-to-openapiTypeScriptOpen1,617+57OpenAPI 3.2 QUERY operations from Zod schemas
OWASP NoirCrystalReleased (1.3.0)1,416+9 · merged +60 · release +63Endpoint-discovery / attack-surface tool; v1.3.0 ships QUERY detection end-to-end across ~24 framework analyzers
oasdiffGoReleased (v1.30.0)1,349+50 · merged +68 · release +75OpenAPI diff / breaking-change detection understands 3.2 query operations; shipped in v1.30.0 (+75), which lists "OpenAPI 3.2 QUERY and custom methods are compared"
DSpaceJavaOpen1,094+42 · touched +44Repository platform evaluating QUERY for discovery/search REST endpoints — an application-level adopter rather than a framework
httpYacTypeScriptOpen, PRs in flight869−35 issue · PRs +76CLI / editor runner for .http files. The request predates the RFC by a month; two implementation PRs arrived at +76+79, one already withdrawn, neither reviewed
hono-openapiTypeScriptTwo PRs open785+23 · active +62OpenAPI generation for Hono; the PR pairs QUERY support with an OpenAPI 3.2 bump. Hono's own routing has shipped since +48, so this is the documentation half catching up
htsget (hts-specs)SpecOpen711+70Genomics data-retrieval spec considering QUERY for requests too large for a URL
go-openapi/specGoOpen435+25PathItemProps needs a QUERY field; first attempt closed, discussion continues
Apollo ClientTypeScriptOpen132+17 · touched +27Feature request for QUERY as the GraphQL-over-HTTP transport; no commitment yet
sphinxcontrib-httpdomainPythonMerged62+32 · merged +63Sphinx directives for documenting HTTP APIs; adds the QUERY method and the Accept-Query header, so Python projects can document QUERY endpoints
W3C SPARQL ProtocolSpecResolved (informative)2−198 · closed +77Opened before the RFC existed. The WG declined to make QUERY a first-class SPARQL 1.2 binding — 1.2 is scoped to RDF 1.2 and errata — but added an informative Note that QUERY may be used where the server accepts it, mirroring the existing HTTP PATCH note. Oxigraph already supports the verb; Comunica merged it at +77
RFC 10008SpecPublished0IESG approval Nov 20, 2025 = −208; query-method

Purpose-built QUERY projects & interop testing6 rows

Greenfield projects written for QUERY, rather than existing stacks adding it. Tracked separately because star counts here measure novelty, not ecosystem penetration. Contributed via jeswr/http-query-adoption#3 and #4, which were redirected to this repo.

ProjectLangKind★ StarsSourceDays after RFCNotes
AyderCAdopter96+31 · merged +43HTTP-native durable event log / message bus. interop/spring-query/ emits side-by-side receipts for QUERY-with-JSON-body direct vs. routed through Envoy, plus a Spring-side matching contract
rfc10008-interopInterop suite0+31Evidence-first matrix: portable checks emitting machine-readable receipts (PASS / FAIL / NOT_SUPPORTED / NOT_APPLICABLE / UNVERIFIED / OBSERVED) over ETag, conditional revalidation, Content-Location, semantic query identity, method override, CORS preflight and cache observability. Records evidence rather than pass/fail verdicts
query-suite-exampleJS (Workers)Reference impl0+20Cloudflare Workers QUERY suite; one of the two implementations currently covered by the interop matrix
query-go-sdkGoSDK0+23 · v0.2.1 +49Dependency-free client + server SDK; §2.5-conformant redirect handling; v0.2.1 (+49) fixes media-type matching
http-queryRustSDK0+35 · v0.2.0 +49Client + server SDK on reqwest + axum; published to crates.io; v0.2.0 (+49) adds §2.5 redirect handling
http_queryDartSDK0+49Client + server SDK on package:http; published to pub.dev; 0.2.0 (+49) adds §2.5 redirect handling

Only two independent implementations are covered by the interop matrix so far, so it is not yet a conformance signal for the stacks in the tables above.

Cross-cutting: redirect semantics (§2.5)6 rows

A recurring failure class, independent of language: clients that treat QUERY like POST on 301/302 and silently downgrade it to GET, discarding the query body.

StackStatusTracking
GuzzleFixed
Go (net/http)Fixed
Apache HttpClient 5Released
query-go-sdk / http-query (Rust, Dart)By design
libwww-perlOpen
requestsAcknowledged

Worth checking explicitly in any stack marked "✅ Generic" above — arbitrary-method support does not imply correct redirect handling.