FastWARC
The world's fastest WARC parsing library written in Rust with bindings for Python.
What it is and what it does
FastWARC is a Python library that reads WARC archive files—the standard format for storing web crawl data—using a Rust implementation for speed. It handles both compressed (Gzip, Zstd, LZ4) and uncompressed WARC/1.0 and WARC/1.1 streams. The library is part of the ChatNoir Resiliparse toolkit for web data processing and is designed for workloads that need to ingest and parse large volumes of web archive data efficiently.
You install it via pip and import it to iterate over records in WARC files. It depends on brotli, click, tqdm, and typing_extensions. The package requires Python 3.10 or later and is actively maintained with recent releases and no known security issues.
Use it for:
- Parse Common Crawl WARC dumps or other web archive collections for research or data extraction.
- Build web crawl pipelines that need to read compressed WARC files without decompressing to disk first.
- Extract HTTP responses, metadata, or payloads from archived web data at scale.
- Integrate WARC parsing into information retrieval or web analytics workflows.
- Process historical web snapshots stored in WARC format for archival or compliance tasks.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
FastWARC parses WARC (Web ARChive) files—compressed or uncompressed—at high speed using Rust-backed bindings, supporting WARC/1.0 and WARC/1.1 with Gzip, Zstd, and LZ4 compression.
Yes. FastWARC is actively maintained, has no known vulnerabilities, is licensed permissively, and offers pre-built wheels for modern Python versions on all major platforms. Install it if you work with WARC files or web archives; the Rust backend and broad compression support make it a solid choice for this specific task.
Install
fastwarc on PyPI
pip
pip install fastwarcuv
uv add fastwarcpoetry
poetry add fastwarcInstalling FastWARC
Before you install
Pre-built wheels cover modern Python versions and major platforms (macOS, Linux, Windows), reducing compile friction. The package is actively maintained with a recent release and no known vulnerabilities.
License in practice
Apache-2.0 is permissive; you may use, modify, and distribute FastWARC freely in proprietary or open-source projects with minimal restriction.
Quickstart
pip install fastwarc
from fastwarc.warc import ArchiveIterator
with open('archive.warc.gz', 'rb') as f:
for record in ArchiveIterator(f):
print(record.headers)
Requires Python 3.10 or later; pre-built wheels available for macOS (arm64, x86_64), Linux (aarch64, x86_64), and Windows (amd64).
Verify before relying
- Exact performance improvement over pure-Python WARC parsers is not quantified in the fact sheet.
- Memory overhead or streaming behavior for very large WARC files is not documented in the excerpt.
- Whether the library supports incremental parsing or requires loading entire records into memory.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 4 — brotli, click, tqdm, typing_extensions |
| Maintenance | actively maintained — 25 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,402,572/month — #3,945 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: fastwarc-1.0.9-cp310-cp310-macosx_12_0_arm64.whl; fastwarc-1.0.9-cp310-cp310-macosx_12_0_x86_64.whl; fastwarc-1.0.9-cp310-cp310-manylinux_2_28_aarch64.whl; fastwarc-1.0.9-cp310-cp310-manylinux_2_28_x86_64.whl; fastwarc-1.0.9-cp310-cp310-win_amd64.whl; fastwarc-1.0.9-cp311-cp311-macosx_12_0_arm64.whl; fastwarc-1.0.9-cp311-cp311-macosx_12_0_x86_64.whl; fastwarc-1.0.9-cp311-cp311-manylinux_2_28_aarch64.whl; fastwarc-1.0.9-cp311-cp311-manylinux_2_28_x86_64.whl; fastwarc-1.0.9-cp311-cp311-win_amd64.whl; fastwarc-1.0.9-cp312-cp312-macosx_12_0_arm64.whl; fastwarc-1.0.9-cp312-cp312-macosx_12_0_x86_64.whl; fastwarc-1.0.9-cp312-cp312-manylinux_2_28_aarch64.whl; fastwarc-1.0.9-cp312-cp312-manylinux_2_28_x86_64.whl; fastwarc-1.0.9-cp312-cp312-win_amd64.whl; fastwarc-1.0.9-cp313-cp313-macosx_12_0_arm64.whl; fastwarc-1.0.9-cp313-cp313-macosx_12_0_x86_64.whl; fastwarc-1.0.9-cp313-cp313-manylinux_2_28_aarch64.whl; fastwarc-1.0.9-cp313-cp313-manylinux_2_28_x86_64.whl; fastwarc-1.0.9-cp313-cp313-win_amd64.whl
Tags
More WWW/HTTP 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
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
ResiliparseResiliparse provides fast, robust parsing and…
permissive · top 5,000 on PyPI
warcioReads and writes WARC (Web ARChive) and legacy…
permissive · top 5,000 on PyPI
warc3-wetRead and iterate over WARC (Web ARChive) and…
copyleft · top 15,000 on PyPI
warc3-wet-clueweb09Reads and iterates over WARC and WET archive…
copyleft · top 15,000 on PyPI
fastarFastar provides high-performance tar archive…
permissive · top 1,000 on PyPI
cramjamProvides fast Python bindings to multiple…
permissive · top 1,000 on PyPI
gzip-streamWraps streams to compress data on-the-fly using…
permissive · top 15,000 on PyPI
Flask-CompressFlask-Compress automatically compresses Flask…
permissive · top 5,000 on PyPI
python-lzfProvides Python bindings to the liblzf…
permissive · top 15,000 on PyPI
arParses and reads ar archive files (.a),…
permissive · top 15,000 on PyPI