Propose a change
Name Last commit message Last updated
assets Publish 1.8.0 22d ago
bin Publish 2.6.3 5d ago
crates Manager: board-centric nav, categorization, Add-to-Library + Add-Project (self-contained), my/public projects, filename discovery, IC pin labels; codec robustness (sexpr, plated pads, tests) 13d ago
demo Live ADS1115 3-column viewer for iframe embedding 29d ago
docs Publish 1.3.0 22d ago
screenshots Publish 1.8.3 22d ago
skills Publish 1.3.2 22d ago
src embed: find ds2sf-emitted files by suffix, not dir-name prefix — fixes empty (0-pin) pin→pad table when MPN≠dirname (Ray issue #3); bump 2.6.3 5d ago
.gitignore Publish 1.5.0 22d ago
adom-lbr-billboard.png name-first hero, fresh from-scratch screenshot at window size 24d ago
adom-lbr-hero-v3.png apply editor sheet: name-first hero 24d ago
adom-lbr-hero-v4.png bigger name (+20%), smaller logo (-10%) 24d ago
adom-lbr.png Add hero asset adom-lbr.png 29d ago
Cargo.lock Publish 1.8.3 22d ago
Cargo.toml embed: find ds2sf-emitted files by suffix, not dir-name prefix — fixes empty (0-pin) pin→pad table when MPN≠dirname (Ray issue #3); bump 2.6.3 5d ago
install.sh Publish 2.0.0 19d ago
LICENSE Add MIT license (open source) 26d ago
package.json Publish 2.6.3 5d ago
page.json embed: find ds2sf-emitted files by suffix, not dir-name prefix — fixes empty (0-pin) pin→pad table when MPN≠dirname (Ray issue #3); bump 2.6.3 5d ago
README.md any-EDA→any-EDA framing; add adom-lbr Manager (list/viewer/layer-stackup/filter/highlight); export-kicad; KiCad import fill + pin-visibility fidelity 19d ago
release.sh Sync current source (open-source, up to date) 26d ago
SKILL.md Publish 2.6.2 7d ago
uninstall.sh Publish 2.0.0 19d ago
VERSION embed: find ds2sf-emitted files by suffix, not dir-name prefix — fixes empty (0-pin) pin→pad table when MPN≠dirname (Ray issue #3); bump 2.6.3 5d ago

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

The Fusion-style 3-column viewer: symbol, footprint, 3D, and the pin→pad mapping table

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

The library viewer: stats and a clean lint pass

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

A lint failure: empty pin-to-pad connects

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

Generating an .lbr from KiCad sources

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 .lbr and 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.

  1. Build it. cargo build --release drops a standalone binary (no Node, no gallia).
  2. Point your install at your checkout. adompkg link john/adom-lbr ./adom-lbr so the adom-lbr you run is your local copy.
  3. 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.
  4. 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.