TerraPDF is a zero-dependency, MIT-licensed PDF library for .NET. Here's why "zero dependency" pushed me into implementing Reed-Solomon error correction and BCH codes by hand instead of just calling ZXing.
A few weeks ago I needed to put a QR code on a PDF invoice. Normal problem, normal solution: pull in a barcode library, call .Generate(), move on with your life.
Except the PDF library I was adding it to — TerraPDF, a project I maintain — has one rule that isn't allowed to bend: zero third-party dependencies. No native binaries, no NuGet packages, no "just add this one small transitive dependency." Pure, managed C#, all the way down.
So instead of dotnet add package ZXing.Net, I spent a weekend implementing Reed-Solomon error correction and BCH codes by hand. This post is about why that rule exists, and what it actually costs to hold the line on it.
The problem with "just add a PDF library" in .NET






