skillfed

niquests

Niquests is a simple, yet elegant, HTTP library. It is a drop-in replacement for Requests, which is under feature freeze.

niquests v3.21.0 2.0M downloads/30d#3,390 on PyPI2,421
Permissive license Apache-2.0 Active released

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 niquests

uv

uv add niquests

poetry

poetry add niquests

Installing 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

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentEnvironment :: WebAssemblyEnvironment :: WebAssembly :: EmscriptenEnvironment :: WebAssembly :: WASIIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Free Threading :: 4 - ResilientProgramming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Internet :: WWW/HTTPTopic :: Software Development :: Libraries

Tags

http client library pythonrequests replacement http/2 http/3async http clientdns over httpshttp/3 quic supportcertificate revocation verificationconnection pooling http
http-clientasync-supporthttp3-quic

More Libraries packages