Skip to main content

fast-querydict

A fast, entity-agnostic parser for application/x-www-form-urlencoded request bodies, built for Django. One pass over the raw bytes yields both the flat data (ready to become a real django.http.QueryDict) and, optionally, the generic html-json-forms nesting of the same body.

import fast_querydict

grouped, nested = fast_querydict.parse(request.body, build_json=True)
# grouped -> {"units": ["a", "b"], "id": ["9"], ...}   raw, first-seen order
# nested  -> {"units": [{"capacity": "100"}], "id": "9", ...}  or None
  • grouped is {key: [value, ...]} with raw values (percent- and +-decoded, not trimmed) in first-seen key order — exactly the internal storage of a QueryDict, so Python can adopt it with a single dict.update.
  • nested is the html-json-forms nesting (a[0][b] → {"a": [{"b": …}]}), with single scalar values trimmed and "" nulled, or None when build_json is false.

See projects/fast_post.py in the GEM project DB for the Django glue: a QueryDict subclass carrying .json, and a pre-CSRF middleware that builds it lazily on first request.POST access.

Build / develop

cd fast_querydict
cargo test                 # pure-Rust logic tests (no Python needed)
maturin develop --release  # build + install into the active venv

The Python side imports it opportunistically and falls back to Django's own parser if it is missing or fails to import, so it is safe to ship without it.

Publish

Wheels are built and uploaded to PyPI by the publish-fast-querydict GitHub Actions workflow (manylinux wheels + sdist via PyO3/maturin-action, uploaded with maturin upload — the same approach as jsonlinesrust/flatterer). It is manual / click-to-deploy: Actions → publish-fast-querydict → Run workflow.

One-time setup: add a PyPI API token as the repo secret PYPI_API_TOKEN. Bump version in Cargo.toml before publishing a new release.

Consumers then install the prebuilt wheel — no Rust toolchain needed at deploy:

pip install fast-querydict

Metadata

Release files for fast-querydict 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fast-querydict 0.1.0
File Size Uploaded Provenance
fast_querydict-0.1.0.tar.gz 6.7 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for fast-querydict 0.1.0
File
fast_querydict-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
fast_querydict-0.1.0-cp314-cp314-win32.whl CPython 3.14 CPython 3.14 Windows x86-32 Details
fast_querydict-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
fast_querydict-0.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
fast_querydict-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
fast_querydict-0.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
fast_querydict-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
fast_querydict-0.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
fast_querydict-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
fast_querydict-0.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
fast_querydict-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
fast_querydict-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details

Total release size: 3.7 MB

Release files / fast_querydict-0.1.0.tar.gz

Download URL fast_querydict-0.1.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d881b8e23adebbe0f8685736b65a2112d272bf8ec71fe0851b9d6119886f020d
BLAKE2b-256 checksum
How to use checksums
1a55f3222efed818637819e9861938d3b5c1427828af999434701ca389087844
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 224.0 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
3f6773c48a2be891580e4a075713c3000d30596a1eaf5685b7a108c7cdfc327b
BLAKE2b-256 checksum
How to use checksums
9bfc99b69a31873dfb012f5a66a61f728d7cf2dd0c9e6af7d3d0ca3dfff9704e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 219.6 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a8d10765bdeb249f235ef6333ebfb844a97c535d4523279dd0d0cd6b491e0add
BLAKE2b-256 checksum
How to use checksums
c9c298d6759f460021a73ac1be064553eb872b04a292b4a8b8a4cb75363e45d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 220.0 kB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
dde2f073b77a902afbb6e7a2854615b820d3c77ad6a0013173afe1def575b397
BLAKE2b-256 checksum
How to use checksums
138cd0cc6d515be77978a7478fcd05759bd87966b404e3b77d968409e83c7c6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 219.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a3018ce6b2e713862dcb0e4125d0c6c60f641a0d0723b58ec0dc45ee1dd46ff3
BLAKE2b-256 checksum
How to use checksums
a9bf1e194bce5dfdbb27328008fe01c735390bc8b4040d19fdfdae9073a49e4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp314-cp314-win_amd64.whl

Download URL fast_querydict-0.1.0-cp314-cp314-win_amd64.whl
Size 115.5 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
f88d130ef2741d06793925b5c3337aad6ea04dd08d69e7412df8614dac4c4e79
BLAKE2b-256 checksum
How to use checksums
a5c829c5371c1640ae4573656cc8cd9cfe4cd77790bf9b8b2ff4794abefd2a82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp314-cp314-win32.whl

Download URL fast_querydict-0.1.0-cp314-cp314-win32.whl
Size 112.1 kB
Tags CPython 3.14 Windows x86-32
SHA-256 checksum
How to use checksums
5ca5d21bc9458d255159ae10f0aec55c77c05b362c034c89e75f681a3f9c404d
BLAKE2b-256 checksum
How to use checksums
939d6a8ffca5ca6a56974c6828a265c557842470b736f0e0686cfd9e4f2d94b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 219.9 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
702c09f5ead4e8b195e7e4e7b134324ae5455b0aacf4dcc9841f16f1b2f01c62
BLAKE2b-256 checksum
How to use checksums
f9fc4094398ddb3cc61be40b8d3236435c387d08293b5d8edd2bb60ccd3b02b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL fast_querydict-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Size 193.6 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7bbfb88e767a3755bd4d905d437964dfa3993a55c80b425f558588b3bfbdf4e1
BLAKE2b-256 checksum
How to use checksums
c667313852fab72bb430beb62cd8c56d18c2bf179177f835047ce2fc2e900ee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp313-cp313-win_amd64.whl

Download URL fast_querydict-0.1.0-cp313-cp313-win_amd64.whl
Size 115.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
12d566190271aaf097aac6f6c98912f5a9e108f55e8e7bed40fa4665afc20786
BLAKE2b-256 checksum
How to use checksums
f4294a17c8d1a34fa093f5da5512327dff30fae9c227f1cb4b34e04fb622349f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 220.0 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
22b568a624d2d1c18a1901a87fc16fd58496d4bf7f0d6486536b16fea8193295
BLAKE2b-256 checksum
How to use checksums
3e19babc09b609ec65336158675893e7dcac04f23d7bcec119af7ba6c1207e2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL fast_querydict-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Size 193.6 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dde395c58f5f5e0c62ef1249c500a081d543a0073bfa44f8995efe63e168e001
BLAKE2b-256 checksum
How to use checksums
1150ce446cc14c769835fb4a1f611f18f54c422a23e3b4b6466ae07d78a1a6c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp312-cp312-win_amd64.whl

Download URL fast_querydict-0.1.0-cp312-cp312-win_amd64.whl
Size 116.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
39192825198757d5da4c143de44502bc715a0f184d6eb03796ffe17d7b0a4607
BLAKE2b-256 checksum
How to use checksums
72b08b2ac7b4eb48b8cec1127dca8e65402f3f671a20686c5e8be82a574aeb38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 220.3 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
74437a33c566c0b3872549c20615d3f8cdf6f0aaf3c5e087cd0f7866dbf69edc
BLAKE2b-256 checksum
How to use checksums
be400db0c9ddf6686c53f4aa6f5f4a3d785eca90869dbd97bcb995f6e47f937e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL fast_querydict-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Size 194.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
be02319052045eb8ba2ad45e50bdceced129e04d5539a5067064d7222c9f6964
BLAKE2b-256 checksum
How to use checksums
3fbb2312e352779cd159af9b3dbb0a54f9ff782896a0c1c659027f5198ef7591
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp311-cp311-win_amd64.whl

Download URL fast_querydict-0.1.0-cp311-cp311-win_amd64.whl
Size 118.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a8e28fdea53bacd467bb36fad52ea2ef590edead1f1b176b07fee2d8c276ae29
BLAKE2b-256 checksum
How to use checksums
a48cad94c3f4febbf5b3773ebd80c9752658276795d0eb134480450856d52d86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 222.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e87cb30d78b69d60b1a99e72494dbcff237f71c1d2afc98a0c778ffde050f687
BLAKE2b-256 checksum
How to use checksums
f0d3b98d8d86c0756c10fc56d476823977a693ab0feaeba368b2e14add0a3bdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL fast_querydict-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Size 195.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b79a8cce527cf5a392bab517580b29584105b21c8a568bf4b3faabf5b67493c7
BLAKE2b-256 checksum
How to use checksums
50d1cfc85d4d74d8ea66854579c8fc7ffe4dbbc25123c217193b3f731424c68f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp310-cp310-win_amd64.whl

Download URL fast_querydict-0.1.0-cp310-cp310-win_amd64.whl
Size 117.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
1209d54b94c940b9c900c481f600ef29f4a29dc8a157f38e757a30f18e3ff033
BLAKE2b-256 checksum
How to use checksums
b0b4c96dd5a788a9621be5b46d765e861ddd034fe816f363b3a57857e8a54a5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 222.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a0dc395d1c9e23a589793a8a934df4388515896d4aaff6b8f33f4c0ef96a0c8d
BLAKE2b-256 checksum
How to use checksums
b9aa737639b4d1e2db5f714d0399c2a24db2bdc089bf177537fb3e0775c4f26a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Release files / fast_querydict-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fast_querydict-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 223.0 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
98feeb1a340630382bd7f908a5391a94adc93211c491354486ec88b411b1d17e
BLAKE2b-256 checksum
How to use checksums
6f1f5666ce8b493878af358b1253e298531879e25231ec4cca9de022c3bfc21b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.14.1

Security for fast-querydict 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

21 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page