crates.io · pdfluent

Rust PDF SDK

A pure-Rust PDF library for processing, rendering, signing, and converting PDF documents. Ships as a Cargo crate under the AGPLv3, with generally available Python, Node.js, WebAssembly, .NET, and Java bindings. The free build is the whole SDK: every feature, no watermark, nothing to activate. If the copyleft does not work for you, a commercial licence lifts it — prices published, bought self-service, no sales call.

Installation

Add via cargo:

$cargo add pdfluent@1.0.0

Or edit Cargo.toml directly:

toml
[dependencies]
pdfluent = "1"

Enable optional feature flags (XFA, signatures, OCR, etc.):

toml
[dependencies]
pdfluent = { version = "1", features = ["xfa", "signatures"] }

Quick example

Extract all text from a PDF in five lines:

rust
use pdfluent::PdfDocument;

fn main() -> pdfluent::Result<()> {
    let doc = PdfDocument::open("invoice.pdf")?;
    let text = doc.extract_text()?;
    println!("{text}");
    Ok(())
}

See the full API reference for forms, signatures, rendering, PDF/A conversion, and more, or the Cookbook for ten recipes that are compiled on every release.

What's included

AcroForms (production-grade)
XFA form processing — experimental, under active development
PDF/A validation and conversion
AES-256 encryption and digital signatures (PAdES B-B, B-T, B-LT)
Text extraction and page rendering
WebAssembly, Node.js, and Python bindings — production-ready
No runtime dependencies — pure Rust
Offline licence validation — no phone-home

Same feature set across all licence tiers. Tiers differ on developer count and the number of products you ship — not on which SDK capabilities you can use. Full feature list →

Licensing

PDFluent uses an offline, signed-file licence. Three modes — pick what fits your stage.

Default

Unlicensed (no key)

Use the SDK with no configuration. All features work. Output PDF files are stamped with a Producer watermark.

Free

Free under the AGPLv3

The complete SDK, in production, at any scale. Nothing is withheld and nothing expires. The AGPL asks one thing back: publish your own corresponding source.

Install it →
Yearly

Commercial licence

The right not to publish your own source. Four self-service buttons — per organisation, or per product when you ship PDFluent inside something you sell. No seats, no quotes.

View pricing →

There is no licence key and nothing to activate. The SDK makes no network call at any point, so it works air-gapped by construction. Pricing →

Targets & bindings

We are honest about what is shipping today. Rust is live on crates.io. The other bindings are being tracked toward release.

Rust (native)Available
cargo add pdfluent@1.0.0
Details →
PythonAvailable
pip install pdfluent==1.0.0
Details →
WASM / JavaScriptAvailable
npm install @pdfluent/sdk-wasm
Details →
Node.jsAvailable
npm install @pdfluent/node
Details →
.NET / C# PDF SDKAvailable
dotnet add package PDFluent
Details →
Java PDF SDKAvailable
com.pdfluent:pdfluent:1.0.0
Details →
C APIInternal
Used by language bindings; not separately distributed yet

Documentation·Pricing·Which licence applies

XFA & legacy forms

Render and flatten Adobe LiveCycle / dynamic XFA forms in pure Rust — no Adobe runtime, on-prem or WebAssembly. Evaluation and migration guides:

Start building today

The full SDK, free under the AGPLv3. No sign-up, no key, nothing to activate.