niquests
Niquests is a simple, yet elegant, HTTP library. It is a drop-in replacement for Requests, which is under feature freeze.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
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 · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
last release 2026-07-29 (16 days) · last repo commit 2026-08-11 · 2,421 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,978,036 downloads/mo, #3,390 on PyPI
Alternatives
Verify before relying
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())- 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
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 on it.
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
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 packagescharset-normalizerurllib3-futurewassima |
| 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 |
| Classifiers | 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 |
Evidence: niquests-3.21.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “requests replacement http/2 http/3”
- niquestsNiquests is a drop-in replacement for Requests that provides…
- hyper-upHTTP/2 client library for Python that provides an alternative to…
- httprhttpr is a fast HTTP client for Python built on Rust that provides…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also urllib3-future · aioquic · qh3 · httpx · dnspython · ocspresponder · httpx2 · httpcore