kiutils_kicad 0.2.0

Typed KiCad document model and codecs for seamless, lossless edit round-trips
Documentation

kiutils-kicad

Typed KiCad file document layer built on top of kiutils-sexpr.

If you want stable end-user imports, use kiutils-rs. This crate exposes the implementation-layer API and additional file families.

Scope

  • .kicad_pcb
  • .kicad_mod
  • .kicad_sch
  • .kicad_sym
  • fp-lib-table
  • sym-lib-table
  • .kicad_dru
  • .kicad_pro
  • .kicad_wks

Core behavior

  • Default write mode is lossless (WriteMode::Lossless)
  • Unknown tokens are captured on typed ASTs (unknown_nodes, unknown_fields)
  • write_mode(..., WriteMode::Canonical) available for normalized output
  • Version diagnostics produced post-parse for forward-compat signaling

Evidence:

Quickstart

use kiutils_kicad::{SchematicFile, WriteMode};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let doc = SchematicFile::read("input.kicad_sch")?;
    doc.write_mode("output.kicad_sch", WriteMode::Lossless)?;
    Ok(())
}

Policy notes:

  • AST *_count fields are convenience counters, not strict stability promises.
  • Unknown-token diagnostics are developer-facing; summarize before showing end users.
  • .kicad_dru rule conditions are preserved as strings in v1.