Open Redact PDF¶
Open Redact PDF is a browser-first PDF redaction engine implemented in Rust and exposed to browsers through WebAssembly. The project operates on PDF structure instead of flattening pages into images, removes targeted content for a constrained but real subset of PDFs, and preserves unredacted text where the supported subset allows it.
Start here¶
Reference¶
- Rust API
- TypeScript and WASM API
- Canonical target model
- Supported PDF subset and failure model
- Workspace crate map
Design and security¶
Guides¶
Engine Internals¶
Deep technical documentation covering PDF spec concepts, implementation decisions, tradeoffs, and code-level explanations. Start with the reading order guide.
- Reading order for new contributors
- Architecture overview
- PDF primer
- Parsing model
- Object model and serialization
- Graphics state and coordinate systems
- Text system and extraction
- Search geometry and match modeling
- Redaction target model
- Redaction application pipeline
- Writer and deterministic output
- WASM/JS boundary design
- Security and correctness model
- Known limitations
- Glossary
- PDF spec to code map
- Top 10 implementation decisions
Current MVP scope¶
- Unencrypted PDFs with classic xref tables
- Unfiltered or
FlateDecodestreams - Deterministic full-document rewrites
- Common page content streams without Form XObjects on targeted pages
Type1,TrueType, andType0/Identity-Htext when extraction can map glyphs safely- Rectangle, quad, and quad-group redaction targets in canonical page space
- Three redaction modes:
strip,redact(default), anderase - Conservative image redaction at invocation level
Fail-explicit design
Unsupported features return an explicit error instead of being silently ignored or producing incorrect output.