niquests
Niquests is a simple, yet elegant, HTTP library. It is a drop-in replacement for Requests, which is under feature freeze.
What it is and what it does
Niquests is an HTTP client library that extends the familiar Requests API with modern protocol support and advanced networking features. It handles HTTP/1.1, HTTP/2, and HTTP/3 over QUIC, works in both synchronous and asynchronous contexts, and includes features like DNS over HTTPS/QUIC/TLS, OCSP certificate revocation verification, OS trust store integration, and connection pooling. The library is designed as a drop-in replacement for Requests, which is under feature freeze, making it suitable for projects that need modern HTTP capabilities without rewriting their HTTP client code.
The package supports both CPython and PyPy on Python 3.7+, including WebAssembly environments (WASI and Pyodide). It requires no compilation toolchain for basic use, though HTTP/3 support depends on platform availability. Three runtime dependencies (charset-normalizer, urllib3-future, wassima) handle character encoding, URL parsing, and TLS operations respectively.
Use it for:
- Migrating from Requests to gain HTTP/2 and HTTP/3 support without rewriting existing code
- Building high-throughput HTTP clients that need multiplexing and connection pooling across threads or async tasks
- Applications requiring DNS over HTTPS, QUIC, or TLS for privacy and security
- Services that need OCSP certificate revocation verification and OS trust store integration
- Asynchronous web scrapers or API clients that benefit from both sync and async APIs in the same library
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Niquests is a drop-in replacement for Requests that provides HTTP/1.1, HTTP/2, and HTTP/3 support with both synchronous and asynchronous APIs, advanced DNS options, OCSP certificate verification, and connection pooling.
Yes. Niquests is production-ready (Development Status 5), actively maintained, has no known vulnerabilities, and offers a genuine upgrade path from Requests with modern protocol support and advanced security features. Low install friction and permissive licensing make it a straightforward choice for projects that need HTTP/2, HTTP/3, or advanced DNS/certificate features. The Requests-compatible API minimizes migration effort.
Install
niquests on PyPI
pip
pip install niquestsuv
uv add niquestspoetry
poetry add niquestsInstalling niquests
Before you install
Low install friction with a pure-Python wheel; three runtime dependencies (charset-normalizer, urllib3-future, wassima). Actively maintained with a recent release 16 days ago and 2421 GitHub stars.
License in practice
Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
Quickstart
import niquests
# Synchronous
r = niquests.get('https://example.com')
print(r.status_code, r.text)
# Asynchronous
import asyncio
async def fetch():
r = await niquests.aget('https://example.com')
return r.text
asyncio.run(fetch())
Verify before relying
- Whether HTTP/3 support is automatically available on all platforms or requires platform-specific wheels
- Performance claims in the description (0.551s vs 2.087s/1.351s) and whether they reflect typical production workloads
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — charset-normalizer, urllib3-future, wassima |
| Maintenance | actively maintained — 16 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,978,036/month — #3,390 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: niquests-3.21.0-py3-none-any.whl
Keywords: QUIC, crl, dns-over-https, dns-over-quic, dns-over-tls, dnssec, doh, doq, dot, http, http client, http/1.1, http2, http3, https, multiplexed, ocsp, requests, revocation, sse, tls, wasi, wasmtime, websocket
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
urllib3-futureHTTP client library supporting HTTP/1.1,…
permissive · top 5,000 on PyPI
aioquicaioquic implements QUIC and HTTP/3 network…
permissive · top 5,000 on PyPI
qh3qh3 is a Python library implementing the QUIC…
permissive · top 5,000 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
dnspythondnspython is a DNS toolkit that handles…
permissive · top 1,000 on PyPI
ocspresponderImplements an RFC 6960 compliant OCSP Responder…
permissive · top 5,000 on PyPI
httpx2HTTPX2 is a fully featured HTTP client library…
permissive · top 1,000 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI