Skip to content

Upstream and versioning

trafilatura-rs

trafilatura-rs is a pure-Rust library and CLI by nchapman that extracts the main text, comments and metadata of web pages — a faithful port of go-trafilatura. No Python runtime, no C bindings, no subprocesses.

This package compiles it into a Python extension with PyO3 and maturin, and adds:

From trafilatura-rs Added here
The extraction pipeline: content, comments, metadata, fallbacks The trafilatura-compatible Python API and its module layout
Language filtering trafilatura's renderers (XML, TEI, JSON, CSV, HTML, Markdown), its tree vocabulary, its rescue, size and deduplication checks
Options / Config tuning Extractor, Document, settings.cfg compatibility
Performance Downloads (urllib3, retries, SSRF guard), URL and file input resolution, CLI, GIL release

Wrong extraction on a page → trafilatura-rs issues. Anything about the Python API → ours.

Versions

import etrafilatura

etrafilatura.__version__      # '0.1.0' — this package, its own semver
etrafilatura.ENGINE_VERSION   # '0.5.0' — the trafilatura-rs release compiled in

The engine is pinned to an exact release. Every new release is picked up automatically and recorded in the changelog → Self-maintenance.

Other ways to use the engine

Runtime Install
Rust cargo add trafilatura
CLI cargo install trafilatura --features cli
Python pip install etrafilatura

Licenses

The binding is MIT © EDamLabs; the engine is Apache-2.0. Wheels statically link the engine and its dependencies, under permissive licenses. All license texts are in THIRD_PARTY_LICENSES.md, shipped inside every wheel and regenerated with make licenses.