Foliant.Orchestration
1.8.1
dotnet add package Foliant.Orchestration --version 1.8.1
NuGet\Install-Package Foliant.Orchestration -Version 1.8.1
<PackageReference Include="Foliant.Orchestration" Version="1.8.1" />
<PackageVersion Include="Foliant.Orchestration" Version="1.8.1" />
<PackageReference Include="Foliant.Orchestration" />
paket add Foliant.Orchestration --version 1.8.1
#r "nuget: Foliant.Orchestration, 1.8.1"
#:package Foliant.Orchestration@1.8.1
#addin nuget:?package=Foliant.Orchestration&version=1.8.1
#tool nuget:?package=Foliant.Orchestration&version=1.8.1
Foliant
Layout-aware PDF document AI for .NET — fully local, no Python sidecar, no cloud APIs.
Foliant extracts structured content (Markdown / JSON / typed objects) from PDFs the way commercial document-intelligence services do: layout detection, per-region OCR, table-structure recognition, and reading-order assembly — all running on ONNX Runtime, entirely on your machine. Documents never leave the host.
using Foliant.Pipeline;
// Models download once into a local cache (SHA-256 verified), then everything runs offline.
using var processor = await FoliantProcessor.CreateDefaultAsync();
var result = await processor.ProcessAsync(File.ReadAllBytes("document.pdf"));
Console.WriteLine(result.Markdown); // layout-aware Markdown
string json = result.ToJson(indented: true); // structured regions, tables, bounds, confidence
Why Foliant
- Born-digital fast path — pages with an embedded text layer take characters verbatim (layout still analyzed from pixels); OCR runs only where needed. ~0.4 s/page at 300 DPI.
- Forms done right — recursive ruling-line decomposition keeps checkbox marks, field
labels, and values associated on government-style forms; table grids come from a hybrid of
Microsoft TableTransformer and rule-based ruling analysis, with a grid-fit guard that renders a
mis-detected form block as ordered prose instead of a scrambled table. Opt-in
Foliant.Forms.*profile packs add typed key-value extraction for known form families. - Self-verifying — every page enforces a coverage invariant (every extracted line provably lands in the output or is intentional page furniture), reports word recall against the PDF's own text layer, and scores reading-order fidelity against that text layer's order — so a page that keeps every word but permutes it is caught (word recall alone is order-blind). On a 474-page federal-RFP reference corpus: 99.7% average word recall, 100% of pages ≥95%, zero text loss, zero fabricated form values.
- Pluggable — every stage (layout, OCR, tables, reading order) is an interface in
Foliant.Core; swap any backend without forking.
Packages
| Package | Purpose |
|---|---|
Foliant.Pipeline |
Batteries-included default pipeline (start here) |
Foliant.Core |
Interfaces + DTOs only — for consumers and backend authors |
Foliant.Layout.DocLayoutNet |
DocLayout-YOLO layout detection backend |
Foliant.Ocr.PaddleOcr |
PaddleOCR detection/recognition backend with rotated-text handling |
Foliant.Tables.TableTransformer |
TableTransformer + ruling-grid table structure backend |
Foliant.Models |
Model catalog + verified local cache (weights from Hugging Face) |
Model weights (~280 MB total) are not inside the packages; they download on first use with
checksum verification, or pre-fetch them yourself and point FoliantProcessor.CreateDefault
at the directory.
Apache 2.0. English-language documents. Scanned-document support ships today — deskew, denoise, contrast normalization, and coarse page-orientation correction (0/90/180/270°); page dewarp and low-DPI super-resolution are on the roadmap.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Foliant.Core (>= 1.8.1)
- Foliant.Pipeline (>= 1.8.1)
- Foliant.Templates (>= 1.8.1)
- ZeroDep (>= 2.1.1)
- ZeroDep.Abstractions (>= 2.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.