BoardRipper is released under the GNU Affero General Public License v3.0
(see LICENSE).
It incorporates, links against, or was informed by the following third-party
works. Each entry lists the upstream project, its license, and how it is used
in BoardRipper.
---
pcbnew/pcb_io/allegro/src/frontend/src/parsers/allegro/ (allegro-types.ts, allegro-header.ts, allegro-blocks.ts, allegro-assembler.ts, allegro-db.ts)pcbnew/pcb_io/altium/src/frontend/src/parsers/altium/.PcbDoc parser in BoardRipper is a TypeScript re-implementation derived from KiCad's C++ Altium importer. Stream layouts, property-bag and binary-record decoders, version-conditional field handling, and coordinate transforms are transliterated from KiCad. Same GPL lineage as the Allegro parser — already covered by BoardRipper's AGPL-3.0 envelope.src/frontend/src/parsers/ — BVR1, BVR3, BRD, BDV, BDV ASC, FZ, CAD, XZZ parsersdocs/formats/; no verbatim OpenBoardView code is present. The FZ decryption key is not inherited from OpenBoardView — upstream OBV deliberately omits it (FZFile::getBuiltinKey() returns an empty array), and so does BoardRipper. See the *FZ decryption key — not bundled* entry below.docs/formats/BVR_FORMAT.md, docs/formats/BRD_FORMAT.md, docs/formats/BDV_FORMAT.md, docs/formats/BDV_ASC_FORMAT.md, docs/formats/FZ_FORMAT.md, docs/formats/CAD_FORMAT.md, docs/formats/XZZ_FORMAT.mdsrc/frontend/src/parsers/bdv-asc-decoder.tsdd:1.3?,r?-=bb signature and the line-key cipher shape (count-minus-byte, CRLF-advanced). BoardRipper's TypeScript decoder was written against OpenBoardView's canonical decode_bdv in BDVFile.cpp — the same algorithm, but the gist was how the format was first attributed to the Honhan / Tebo-ICT family.src/frontend/src/parsers/mentor-neutral-parser.ts, src/frontend/src/parsers/mentor-neutral-format.ts.brd (XML) — original worksrc/frontend/src/parsers/eagle-parser.ts, src/frontend/src/parsers/eagle-format.tseagle.dtd that ships with every EAGLE/Fusion install and the "EAGLE File Format" appendix of the manual — plus four EAGLE 6.3/6.4 reference boards. No code was copied from EAGLE itself or from any GPL importer. The one external cross-check was KiCad's *documented behaviour* for the mirrored-element transform (mirror across local Y, then rotate CCW); the algebra was re-derived here rather than transliterated, and no KiCad source is present. Note this is unrelated to the eagleview entry below, which is the Teboview format and shares only a name.src/frontend/src/parsers/tvw-parser.tssrc/frontend/src/parsers/allegro/src/frontend/src/parsers/fz-parser.ts): RC6 algorithm by Rivest, Robshaw, Sidney, and Yin. Public algorithm, implementation written from the published design..fz boardview files via the RC6 cipher above.FZFile::getBuiltinKey() returns an empty array — see src/openboardview/FileFormats/FZFile.cpp upstream)..fz, BoardRipper opens an in-app dialog with two options — fetch from a public mirror (the cryptonek/illegal-numbers GitHub repo) or paste manually from any source the user trusts. The supplied bytes are validated against the 44-bit parity fingerprint that upstream OpenBoardView ships, then stored in the user's browser localStorage. See docs/formats/FZ_FORMAT.md § *Key sourcing* and src/frontend/src/store/fz-key-store.ts.src/frontend/src/parsers/xzz-parser.ts): standard FIPS lookup tables (IP, FP, S-boxes, P-box, expansion, PC-1, PC-2) are reproductions of the public specification; key schedule and round function written from the standard.src/frontend/src/parsers/cad-parser.ts): public interchange format specification.src/frontend/src/parsers/kicad-parser.ts): the parser is an original TypeScript implementation written from KiCad's public file-format documentation and validated against MIT-licensed public sample boards from theacodes/kicanvas. Unlike the Allegro and Altium parsers above, no KiCad source code was transliterated — a documented text format needs no reverse engineering. (BoardRipper is AGPL-3.0 regardless, on account of those two parsers.)mdi:soldering-ironsrc/frontend/src/icons/IconSolderingIron.tsxIconSolderingIron (used as the Worklist "rework" mark) reuses two of the three SVG subpaths from mdi:soldering-iron — the handle/plug and the heating-element + tip. The third subpath (cord coil) was dropped and the remaining paths were mirrored horizontally + scaled to 0.92 for layout. Apache-2.0 is GPL-3.0-compatible, so no license-propagation issue.game-icons:soldering-iron (smoke wisp shape inspiration)src/frontend/src/icons/IconSolderingIron.tsxgame-icons:soldering-iron. No path data is copied verbatim — the wisp in BoardRipper is a hand-traced tapered shape redrawn from scratch with explicit pointy endpoints to fit the 24×24 viewBox. Attribution kept per CC BY 3.0's BY clause.---
| Package | License | Role |
|---|---|---|
| react, react-dom | MIT | UI runtime |
| vite | MIT | Build tool, dev server |
| typescript | Apache-2.0 | Type system |
| pixi.js | MIT | WebGL rendering engine |
| pixi-viewport | MIT | Pan/zoom/culling viewport |
| dockview, dockview-react | MIT | Dockable panel system |
| pdfjs-dist | Apache-2.0 | PDF rendering and text extraction (Mozilla) |
| pdf-lib | MIT | PDF manipulation |
| opentype.js | MIT | Font glyph extraction |
| @tabler/icons-react | MIT | UI icon set |
| cfb | Apache-2.0 | MS-CFBF / OLE Compound File Binary parser (SheetJS) — Altium .PcbDoc container |
A complete, version-pinned inventory is generated from src/frontend/package.json
and src/frontend/package-lock.json.
---
| Package | License | Role |
|---|---|---|
| Go standard library (net/http, crypto, encoding, …) | BSD-3-Clause | HTTP server, crypto, encoding primitives |
| modernc.org/sqlite | BSD-3-Clause | Pure-Go SQLite driver (board reference database, databank, FTS5 PDF index) |
| github.com/klippa-app/go-pdfium | MIT | PDF text extraction for the FTS5 index (embeds the pdfium.wasm blob in the scratch image) |
| github.com/tetratelabs/wazero | Apache-2.0 | Pure-Go WebAssembly runtime hosting pdfium.wasm |
| aead.dev/minisign | MIT | Ed25519 update-manifest signature verification (secure self-update) |
| golang.org/x/text | BSD-3-Clause | Unicode NFKC normalisation for watermark matching |
Version-pinned inventory: src/backend/go.mod, src/backend/go.sum.
---
| Package | License | Role |
|---|---|---|
| electron | MIT | Desktop application shell |
| @electron/packager | MIT | Build pipeline |
| @electron/universal | MIT | macOS universal binary packaging |
Version-pinned inventory: desktop/package.json, desktop/package-lock.json.
---
The files under samples/ are real-world boardview and PDF files
from third-party hardware manufacturers (Apple, ASUS, Quanta, Lenovo, and
others), used as format-compatibility test fixtures. They are not authored by
the BoardRipper project and no copyright is claimed over them. They are
retained here because the corresponding file formats are proprietary and
difficult to reproduce synthetically.
If you are a rights holder and would like a sample file removed, please open
an issue on the BoardRipper GitHub repository and it will be deleted
promptly.
---
tomu-fpga.kicad_pcb (bundled sample, lite build)src/frontend/public/samples/tomu-fpga.kicad_pcb — the "Try a sample board" button on the lite build's start pageThe documents under docs/formats/ are original technical
write-ups authored by the BoardRipper project. Where the understanding of a
format was informed by an external reference implementation, that reference
is cited in the document header (see individual format docs for details).
---
If you believe a source has been omitted, misattributed, or that any part of
BoardRipper violates an upstream license, please open an issue on GitHub.
Attribution corrections are welcomed and handled as priority fixes.
BoardRipper — project page