- Rust 97.8%
- JavaScript 1%
- WGSL 0.5%
- Python 0.4%
- HTML 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .cargo | ||
| .github/workflows | ||
| apps | ||
| crates | ||
| docs | ||
| marketing | ||
| rules | ||
| xtask | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .python-version | ||
| AGENTS.md | ||
| ATTRIBUTION.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| clippy.toml | ||
| pyproject.toml | ||
| README.md | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||
| uv.lock | ||
Colijn++
Colijn++ is an open-source ODB++ parser, viewer and design reviewer, written in Rust only.
It opens an ODB++ product model (a folder, .zip, .tgz/.tar.gz or .tar), checks it
against design-rule decks derived from IPC and ECSS standards, and gives reviewers a
viewer in the style of Altium Designer: toggle layers, measure, inspect features, highlight
nets, and leave tagged comments anchored to the design.
It runs natively on Windows, macOS and Linux (egui on wgpu) and in the browser (the same Rust compiled to WebAssembly). There is no webview, Electron or JavaScript UI.
Status: parser, viewer, review workflow (comments, measurements, projects, read-only interactive viewer exports) and the first rule decks work; see docs/roadmap.md.
Get it running
cargo xtask dist # needs Rust and trunk; see docs/development.md
Everything to run or hand out lands in dist/: dist/exe/ (desktop app; the CLI is built on request), dist/web/
(browser app) and run-web.bat / run-web.sh, which serve the browser app with Python on
computers that do not allow other programs.
The desktop app updates itself from craft.colijn.space (Help › Check for updates; a new version
shows in the footer). The shared code for that is in colijn-core on the Git server, which Cargo
fetches over SSH; see docs/decisions.md › ADR-023.
Components
| Part | What it is |
|---|---|
colijnpp-odb |
Standalone ODB++ reader: containers (folder, zip, tar, gzip, UNIX .Z), every entity in the ODB++ 8.1 product model, diagnostics with file and line. No workspace dependencies; publishable on its own. |
colijnpp-step |
Standalone STEP reader: the board's 3D model (B-rep assemblies) to a coloured mesh for the 3D view. |
colijnpp-board |
The normalized board model: integer nanometre coordinates, resolved symbols, text and barcodes, step-and-repeat. |
colijnpp-tess |
Board features to GPU geometry (capsules and triangles). |
colijnpp-design |
An opened design: nets (also of planes), components and pins, stack-up, picking, snapping, labels, trace length, revision compare. |
colijnpp-drc |
Rule engine and rule decks (ECSS-Q-ST-70-12C; IPC decks kept private). |
colijnpp-review |
Comments, tags, measurements, waivers; projects (.colijnpp) and the interactive viewer export. |
colijnpp-render |
CPU reference renderer (the test oracle) and the wgpu renderer. |
colijnpp-engine |
Session (design, drawn geometry, review, rule findings) and command registry: every document change is a command. |
colijnpp-ui-egui |
The Altium-style user interface. |
apps/colijnpp, apps/colijnpp-cli, apps/colijnpp-web |
Desktop app, headless CLI, browser build. |
Quick start
rustup target add wasm32-unknown-unknown # once
cargo xtask ci # fmt, clippy, tests, layering, wasm check
cargo run --release -p colijnpp -- design.zip # viewer (or drop a .zip/.tgz/folder on the window)
cargo run --release -p colijnpp-cli -- snapshot design.zip board.png # headless render
cargo run --release -p colijnpp-cli -- --help # review projects from scripts
cargo xtask corpus # generate the KiCad ODB++ test corpus (needs KiCad 9+)
cd apps/colijnpp-web && trunk serve # browser build at http://127.0.0.1:8766
Full setup, including Windows prerequisites and KiCad: docs/development.md.
Documentation
| Read | For |
|---|---|
| AGENTS.md | Rules for contributors and AI agents. Read first. |
| docs/architecture.md | Crate map, layering, data flow, the engine/UI seam |
| docs/roadmap.md | Milestones, exit criteria, current focus |
| docs/odbpp-parser.md | Design and compliance plan for the parser (milestone 1) |
| docs/design-rules.md | Rule engine, deck format, IPC/ECSS coverage |
| docs/ui-design.md | The Altium-style UI: layout, panels, tools, tokens |
| docs/development.md | Build, test, corpus, web build |
| docs/contributing.md | Clean-room rules, tests, style, commits |
| docs/decisions.md | Architecture decision records |
Standards and trademarks
ODB++ is a trademark of Siemens; its specification is freely available from odbplusplus.com. ECSS standards are public and the ECSS rule decks are open source. IPC standards are not public: IPC-derived rule decks are closed source and not part of this repository. Colijn++ is an independent implementation, not affiliated with or endorsed by Siemens, IPC or ESA/ECSS. It implements the published ODB++ format and encodes numeric limits from standards; it does not reproduce their text. See docs/contributing.md › Clean-room.
License
Rogier can do whatever. External License unknown.