warcio
Streaming WARC (and ARC) IO library
What it is and what it does
Warcio is a streaming library for reading and writing WARC and ARC archive formats used in web preservation. It provides fast, low-level access to web archival content through an iterator-based API, allowing you to process records one at a time without loading entire archives into memory. The library supports both WARC 1.0 and WARC 1.1 ISO standards, handles on-the-fly ARC-to-WARC conversion, and automatically decompresses and de-chunks HTTP payloads. It also includes HTTP capture functionality that monkey-patches Python's http.client to write requests and responses directly to WARC files, integrating well with the requests library.
The package is designed for web archivists, digital preservation workflows, and applications that need to read or create web archives. It originated as a component of the Webrecorder project and is maintained as a standalone library. With only six as an external dependency and pure Python distribution, it installs cleanly across Python 3.8+ versions.
Use it for:
- Extract URLs and content from archived WARC files for analysis or migration to other systems
- Capture HTTP/HTTPS traffic from web scraping scripts directly into WARC files for reproducible archiving
- Convert legacy ARC archives to modern WARC format while preserving record metadata
- Stream remote WARC files over HTTP without downloading them entirely to disk first
- Build web archival pipelines that read, filter, and rewrite WARC records in a single pass
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads and writes WARC (Web ARChive) and legacy ARC format files used in web archiving, with streaming support for both local and remote archives.
Yes. Warcio is production-stable, actively maintained, has no known vulnerabilities, and installs with minimal friction. Install it if you need to read or write WARC/ARC archives or capture HTTP traffic into web archives.
Install
warcio on PyPI
pip
pip install warciouv
uv add warciopoetry
poetry add warcioInstalling warcio
Before you install
Low friction: pure Python wheel with only six as a runtime dependency. Active maintenance with a recent release (136 days ago) and steady repository activity.
License in practice
Apache 2.0 permissive license allows commercial and private use with minimal restrictions—suitable for most projects.
Quickstart
from warcio.archiveiterator import ArchiveIterator
with open('path/to/file', 'rb') as stream:
for record in ArchiveIterator(stream):
if record.rec_type == 'response':
print(record.rec_headers.get_header('WARC-Target-URI'))
Verify before relying
- Whether the package supports Python 3.7 as stated in the description, given classifiers list Python 3.8 as minimum
Package facts
| License | Apache 2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — six |
| Maintenance | actively maintained — 136 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 919,403/month — #4,721 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: warcio-1.8.1-py2.py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
harfileWrites HTTP Archive (HAR) files in Python with…
permissive · top 5,000 on PyPI
pymarcpymarc reads, writes, and modifies MARC21…
unclear · top 15,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
FastWARCFastWARC parses WARC (Web ARChive)…
permissive · top 5,000 on PyPI
savepagenowWrapper and CLI tool to submit URLs to…
permissive · top 15,000 on PyPI
stream-zipConstructs ZIP archives on-the-fly without…
permissive · top 15,000 on PyPI
rarfileReads RAR archive files (RAR3 and RAR5 formats)…
permissive · top 5,000 on PyPI
tzsttzst creates and extracts tar archives…
permissive · top 15,000 on PyPI
arParses and reads ar archive files (.a),…
permissive · top 15,000 on PyPI