crates.io · pdfluent

Rust PDF SDK

A PDF library written in Rust for processing, rendering, signing and converting PDF documents. It 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, with no watermark and no activation step. If the copyleft does not fit your product, a commercial licence lifts it at a published price, bought online without a sales call.
SDK · Install

Installation

Add via cargo:

cargo add pdfluent@1.1.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"] }
SDK · First call

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.

SDK · Manipulate

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
Bindings for Rust, Python, Node.js, Java, .NET and WebAssembly
Written in Rust
No licence key and no activation step

Every licence gets the same SDK. The licences differ on two things: whether you publish your own source, and whether you ship PDFluent inside a product you sell.

SDK · Extract · New in 1.1.0

Structured extraction Preview

Structured extraction returns Markdown, blocks, words with boxes, and chunks for retrieval pipelines. Blocks carry paragraphs, headings with level, list items, table cells with grid position, and running heads, each with page and box.

Two quality tiers:

  • fast (default): the engine alone, pure Rust, no models, runs everywhere including WebAssembly.
  • balanced (Preview): runs a layout model and a table-structure model locally through ONNX Runtime 1.23.2 [B49, 2026-10-10]. Native only, never WebAssembly.

Install the models once with pdfluent models install layout tables. The pdfluent command comes from the CLI archives on the 1.1.0 release page; pip install pdfluent==1.1.0 and npm install @pdfluent/node do not install it. pdfluent models status shows what is installed and whether the pins verify.

Structured extraction ships as Preview: output quality is still improving and the API may change in a minor release. Table results are in claims A38, A39 and A40; see table extraction results.

SDK · Licence

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 and no licence key. Nothing in the output is stamped.

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.

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.

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

SDK · Runtimes

Targets & bindings

Rust, Python, Node.js, WebAssembly, .NET and Java install from a package registry for each language. The bindings call the C API internally; it is not distributed on its own yet.
BindingStatusInstall
Rust (native)Availablecargo add pdfluent@1.1.0Details
PythonAvailablepip install pdfluent==1.1.0Details
WASM / JavaScriptAvailablenpm install @pdfluent/sdk-wasmDetails
Node.jsAvailablenpm install @pdfluent/nodeDetails
.NET / C# PDF SDKAvailabledotnet add package PDFluentDetails
Java PDF SDKAvailablecom.pdfluent:pdfluent:1.1.0
Version 1.1.0 is served from the PDFluent Maven repository at https://maven.pdfluent.com, so add it to your build next to the dependency. Maven Central carries 1.0.0; 1.1.x follows there later.
Details
C APIInternalUsed by language bindings; not separately distributed yet
RegistriesRustcrates.io ↗PythonPyPI ↗Node.jsnpm ↗WASM / JavaScriptnpm ↗.NETNuGet ↗JavaPDFluent Maven ↗
Documentation Pricing Which licence applies
SDK · Forms

XFA & legacy forms

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

Start building today

The full SDK, free under the AGPLv3. No sign-up and no key.