traxide
FreeRouting clone in Rust for PCB routing with a built-in checker.
What it does and how it connects
traxide is a fast, dependency-free PCB autorouter for KiCad and every tool that speaks Specctra DSN: a modern alternative to Freerouting, written in Rust, using every CPU core and, when present, the GPU. It reads KiCad board files and Specctra DSN, and writes a routed board or a Specctra session file. Its traxide check command gives a verdict in the same form as a DRC report in KiCad's JSON format, and a freerouting-named binary takes Freerouting's arguments too, for tools that run Freerouting.
The README's own example says it routes a 4-layer keyboard with an RP2350 completely in seconds, and KiCad 10's DRC finds the result clean, while Freerouting takes minutes and leaves violations. A KiCad plugin adds a Route board button to the PCB editor toolbar (KiCad 9 and 10) that routes every unrouted connection of the open board as one undoable step, plus a Route selected nets button that routes only the nets of the selection. On a board with copper zones traxide refills them around the routes as a step of its own.
The project is young, and the README says so: it has met few boards yet, and points at its benchmarks page for the evidence. It is dual-licensed under Apache-2.0 or MIT at the user's option.
Alternatives
Compare side by side- TraceMaker
Routes and places an existing KiCad .kicad_pcb file, rather than a dependency-free Rust autorouter that also speaks Specctra DSN.
- DeepPCB
A cloud routing service for an already placed board, rather than a local Rust autorouter with a KiCad plugin.
- kicad-mcp (blwfish)
An MCP server that drives a full KiCad workflow from description to fab files with FreeRouter autorouting, rather than a dedicated autorouter.
Recurring errors it addresses
Error Index entries this tool is built to reduce or work around.
- KiCad's Specctra exporter writes wire coordinates with six significant digits, so past 100 mm a track that starts on a pad centre arrives up to half a micrometre off, and Freerouting only connects a trace end at the exact pin centre. On the 20 PCBench reference-routed boards, the router started with 5,586 unconnected items on boards that were complete in KiCad. With the 1 um snap it is 427, and unrouted-after-one-pass went from 941 to 90. The KiCad bug, #25850, is confirmed upstream but not fixed in the versions people use.Error Index
- KiCad lets traces go down to the board trace_min, but the Specctra export only carries net class widths, so Freerouting never learns about it. On 848 of 1,142 PCBench fixtures, trace_min is below the Default class width, and 100 of the 138 boards that failed to fully route are among them, for example a board with 254 um traces in a 508 um class.Error Index
- Follow-up to last hour #1067. Feeding each board KiCad minimum track width to the router as a neck width takes the 56 near-miss boards from 14 fully routed to 32. The value had to be read straight from the .kicad_pcb because the Specctra file never carries it.Error Index
- Freerouting can insert a complete new route, delete it as a dangling tail before the final endpoint attaches, and still return ROUTED while the connection is missing: on the C4 net of the Corney Island wireless board the maze found a valid 150 um bridge, stub cleanup deleted the whole bridge, the later attachment added only a tiny stub, and KiCad confirms C4 is still disconnected.Error Index
Sources
Not verified
- Pricing (none stated on the repo)
- Real user voices (the repo has no public issues)
- Latest release (the README points at Releases, but no GitHub release exists; binaries come from the Actions workflow)
- Standalone website (repo only)
Last verified November 6, 2026. Listings are informational. The evidence score measures public, verifiable evidence and is not an endorsement or a compatibility claim.