Adom Library
Public Made by Adomby adom
adom-lbr — the EDA library translator. Bring a component in from any supported EDA tool and convert it to any other (KiCad ⇄ Altium ⇄ EAGLE/Fusion) through one canonical adom-lbr JSON — symbol + footp
Install
adom-lbr — the EDA library translator. Bring a component in from any supported EDA tool and convert it to any other (KiCad ⇄ Altium ⇄ EAGLE/Fusion) through one canonical adom-lbr JSON — symbol + footprint + 3D + pin↔pad map. Altium is written natively (no Altium needed). Includes the adom-lbr Manager: browse wiki components and view symbol/footprint/3D + the per-EDA layer stackup.
adom-wiki pkg install adom/adom-lbr
Latest: v2.6.3, published
Contents
- Formats & targets
- adom-lbr Manager — browse the wiki, inspect any part
- The 3-column library viewer — and an interactive embed
- The library at a glance
- The linter catches what Fusion rejects
- Generate from the command line
- What it does
- Send to
- Open source — check it out, vibe-code it, send it back
- Part of the Adom EDA family
- Run it
adom-lbr
adom-lbr — the EDA library translator. Bring a component in from any supported EDA tool and convert it to any other — KiCad ⇄ Altium ⇄ EAGLE/Fusion — through one canonical part format, with native Altium output and no local EDA software.
The adom-lbr JSON is Adom's own canonical part: one document carrying the symbol, footprint, 3D reference, and the pin↔pad map. adom-lbr is the translator around it — import a component from KiCad or Altium, then convert the adom-lbr JSON to any other tool: native Altium (.SchLib / .PcbLib / .IntLib), a KiCad .kicad_sym + .kicad_mod, or an EAGLE/Fusion .lbr. Any EDA tool in, any EDA tool out — the canonical JSON is the hub, so every source pairs with every target. The Altium libraries are written natively — the exact OLE2/CFBF binary — so no copy of Altium is needed at conversion time. Standalone Rust, no Node, no gallia.
("lbr" = Adom Library, the adom-lbr JSON — not EAGLE's .lbr, which is just one of the output formats.)
Formats & targets
| Direction | Format | Used by |
|---|---|---|
| Hub | adom-lbr JSON (symbol + footprint + graphics + pin↔pad map) | the canonical format everything converts to/from |
| Import → hub | KiCad .kicad_sym + .kicad_mod → adom-lbr JSON |
bring a KiCad part in |
| Import → hub | Altium .SchLib / .PcbLib / .IntLib → adom-lbr JSON |
bring an Altium part in — pins, pads, and silk/courtyard/fab layers |
| Export → Altium | native .SchLib + .PcbLib, or one bundled .IntLib |
Altium Designer — written natively, no Altium needed |
| Export → Fusion/EAGLE | EAGLE .lbr (symbol + package + connects) |
Autodesk Fusion 360 Electronics, EAGLE, OrCAD |
| Export → KiCad | native .kicad_sym + .kicad_mod (layers preserved) |
KiCad 6+ |
| Merge | add a part's symbol into an existing .SchLib |
install a part into a user's Altium library |
Altium footprint graphics keep their layers across the round trip — silk /
courtyard / fab decode into neutral roles and re-encode onto the right Altium
layers (outline → Mechanical 13 "Assembly Top", courtyard → Mechanical 15
"Courtyard Top"). Verified byte-exact (Altium → JSON → Altium → JSON).
The Send to bar in the live app pushes the loaded library to whichever of those tools you're running (via the Adom Desktop bridge).
adom-lbr Manager — browse the wiki, inspect any part
adom-lbr manage opens a web app that lists every component on the wiki; click
one and it renders the schematic symbol, footprint, and 3D model on the
fly from the part's adom-lbr JSON (or, if the page has none, from its KiCad files).
It surfaces the footprint layer stackup — what layer each silk / courtyard / fab /
copper element becomes in KiCad and Altium, side by side — plus a per-layer
show/hide filter, drag-to-pan / scroll-to-zoom viewers, and hover-to-highlight
on pins & pads showing each one's number and name.
adom-lbr manage --port 8785 # → http://localhost:8785 (list ▸ click ▸ viewer)
The 3-column library viewer — and an interactive embed

▶ Open the live ADS1115 3-column viewer — the exact self-contained file adom-lbr embed produces, served straight from this page (pan/zoom each panel; the pin→pad table is fully populated from the datasheet). It is built to sit in an <iframe> once the wiki enables component-page iframe embedding.
adom-lbr embed exports a Fusion 360-style three-column viewer as one self-contained .html file: symbol in column 1, footprint in column 2, the 3D chip in column 3 — each independently pan/zoomable — with the full pin → pad mapping table below, carrying each pin's type and datasheet description. It's built to drop straight into an <iframe> on a wiki component page: a single portable file, no server, no external assets.
adom-lbr embed --dir <chip-dir> # → <mpn>-lbr-embed.html
<iframe src="…/<mpn>-lbr-embed.html" width="100%" height="640" style="border:0"></iframe>
It assembles the three renders, the pin→pad connects, and the datasheet pin descriptions from a chip directory — exactly the part data adom-symbol, adom-footprint, ds2sf and chip-thumbnailer already produce.
The library at a glance

Load an .lbr and the viewer breaks it down at a glance — symbols, packages, devicesets, pins, pads — and re-lints it server-side. A green Lint passed badge means the library is ready to import into Fusion 360 Electronics with no surprises. The top bar carries the Send to targets (KiCad / Fusion / Altium / OrCAD).
The linter catches what Fusion rejects

This is the whole point. Fusion will silently show "No Components" or refuse to place a part when a library is subtly broken — adom-lbr catches it first. Here the deviceset has no pin-to-pad connect mappings, so the linter flags empty-connects with a plain-English reason: "Fusion cannot use this component." It also catches missing packages, devices with no package attribute, malformed XML, and invisible symbol bodies — each with a code and a fix.
Generate from the command line

generate builds the whole library in one shot from a .kicad_sym (+ optional .kicad_mod), lint-checks it, and writes a native .lbr. The same engine powers the Send to → Fusion/Altium/OrCAD flow in adom-symbol and adom-footprint, so whatever you see in those apps is exactly what lands in your library.
What it does
generate—.kicad_sym(+.kicad_mod) → native.lbr, lint-checked for Fusion compatibility.lint/validate— catch the things Fusion rejects: missing connects, incomplete devicesets, bad pad maps.import— EAGLE.lbr→ KiCad.kicad_sym.- Live app — a viewer that lints the loaded
.lbrand shows symbols / packages / devicesets / pins / pads at a glance.
Send to
Fusion 360 (open the .lbr directly), Altium / OrCAD (download the .lbr + import steps; native exporters on the roadmap), KiCad (converted back to .kicad_sym).
Open source — check it out, vibe-code it, send it back
adom-lbr is MIT and fully open. The complete Rust source is in this page's Files tab — browse it, or grab src/ + Cargo.toml.
- Build it.
cargo build --releasedrops a standalone binary (no Node, no gallia). - Point your install at your checkout.
adompkg link john/adom-lbr ./adom-lbrso theadom-lbryou run is your local copy. - Vibe-code a change. Open the folder in Claude Code and describe what you want — a new lint rule, another export target, a smarter symbol synthesizer. The lint rules live in one readable list, easy to extend.
- Send it back. Open a pull request on this page (the wiki reviews and merges per-repo PRs), or start a discussion thread. Good additions get folded into the shipped app.
Part of the Adom EDA family
Used by chip-fetcher and the Send-to flow across adom-symbol and adom-footprint; pairs with ds2sf.
Run it
adom-lbr generate --sym part.kicad_sym --fp part.kicad_mod --name PART --output part.lbr
adom-lbr serve --port 8784 # live linter app (AI-drivable)
adom-lbr embed --dir <chip-dir> # Fusion-style 3-column viewer as one .html
MIT, contributions welcome.