Skip to main content

Crate kiutils_rs

Crate kiutils_rs 

Source
Expand description

§kiutils-rs

Pure-Rust, lossless KiCad S-expression document API for agent workflows. Designed for parse -> typed edit -> write with minimal diff noise and explicit forward-compat surfaces.

§Why this crate (for AI agents and automation)

Capabilitykiutils-rsPython kiutilsKicadModTreeKiCad IPC Rust API (kicad-api-rs-official)
File round-trip targetFirst-class (WriteMode::Lossless)SCM-friendly goal, with known round-trip caveats in docsGenerator-centric (creates footprints; not general file parser API)Runtime IPC API (different problem)
Unknown/future syntaxExposed as typed unknown carriers (UnknownNode, UnknownField)Known issues document format/ordering caveats in some casesFocused on scripted footprint constructionN/A for S-expression file editing
Architecture for tooling3 layers (kiutils-sexpr -> kiutils-kicad -> kiutils-rs)Single Python package/dataclass stackTree-based node generator frameworkIPC client binding
Public tests/docs signalIntegration tests assert byte-equal lossless writes across formatsProject tests exist; changelog tracks format fixes over timeREADME/docs emphasize footprint generation workflowsREADME states docs are not yet available

Source evidence:

§V1 API scope

  • .kicad_pcb
  • .kicad_mod
  • fp-lib-table
  • sym-lib-table
  • .kicad_dru
  • .kicad_pro

Compatibility target:

  • Primary: KiCad v10
  • Secondary: KiCad v9

§Quickstart

use kiutils_rs::{PcbFile, WriteMode};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut doc = PcbFile::read("input.kicad_pcb")?;
    doc.set_generator("kiutils-rs-agent")
        .set_generator_version("0.1.0")
        .upsert_property("Owner", "EDA-Agent");
    doc.write_mode("output.kicad_pcb", WriteMode::Lossless)?;
    Ok(())
}

Crate package name: kiutils-rs Rust import path: kiutils_rs

Structs§

DesignRule
Design-rules (.kicad_dru) APIs.
DesignRulesAst
Design-rules (.kicad_dru) APIs.
DesignRulesDocument
Design-rules (.kicad_dru) APIs.
DesignRulesFile
Design-rules (.kicad_dru) APIs.
Diagnostic
Diagnostics, errors, and write behavior controls.
FootprintAst
Footprint (.kicad_mod) APIs.
FootprintDocument
Footprint (.kicad_mod) APIs.
FootprintFile
Footprint (.kicad_mod) APIs.
FpLibTableFile
Library table (fp-lib-table, sym-lib-table) APIs.
LibTableLibrary
Library table (fp-lib-table, sym-lib-table) APIs.
PcbArc
PCB (.kicad_pcb) APIs.
PcbAst
PCB (.kicad_pcb) APIs.
PcbDimension
PCB (.kicad_pcb) APIs.
PcbDocument
PCB (.kicad_pcb) APIs.
PcbFile
PCB (.kicad_pcb) APIs.
PcbFootprint
PCB (.kicad_pcb) APIs.
PcbFootprintModel
PCB (.kicad_pcb) APIs.
PcbGeneral
PCB (.kicad_pcb) APIs.
PcbGeneratedItem
PCB (.kicad_pcb) APIs.
PcbGraphic
PCB (.kicad_pcb) APIs.
PcbGroup
PCB (.kicad_pcb) APIs.
PcbImage
PCB (.kicad_pcb) APIs.
PcbLayer
PCB (.kicad_pcb) APIs.
PcbNet
PCB (.kicad_pcb) APIs.
PcbPad
PCB (.kicad_pcb) APIs.
PcbPadDrill
PCB (.kicad_pcb) APIs.
PcbPadNet
PCB (.kicad_pcb) APIs.
PcbPaper
PCB (.kicad_pcb) APIs.
PcbProperty
PCB (.kicad_pcb) APIs.
PcbSegment
PCB (.kicad_pcb) APIs.
PcbSetup
PCB (.kicad_pcb) APIs.
PcbTarget
PCB (.kicad_pcb) APIs.
PcbTitleBlock
PCB (.kicad_pcb) APIs.
PcbVia
PCB (.kicad_pcb) APIs.
PcbZone
PCB (.kicad_pcb) APIs.
ProjectAst
Project (.kicad_pro) APIs.
ProjectDocument
Project (.kicad_pro) APIs.
ProjectFile
Project (.kicad_pro) APIs.
Span
Diagnostics, errors, and write behavior controls.
SymLibTableFile
Library table (fp-lib-table, sym-lib-table) APIs.
UnknownField
Diagnostics, errors, and write behavior controls.
UnknownNode
Diagnostics, errors, and write behavior controls.
VersionPolicy
Diagnostics, errors, and write behavior controls.

Enums§

Error
Diagnostics, errors, and write behavior controls.
KiCadSeries
Diagnostics, errors, and write behavior controls.
Severity
Diagnostics, errors, and write behavior controls.
WriteMode
Diagnostics, errors, and write behavior controls.

Type Aliases§

FpLibTableAst
Library table (fp-lib-table, sym-lib-table) APIs.
FpLibTableDocument
Library table (fp-lib-table, sym-lib-table) APIs.
ProjectExtra
Project (.kicad_pro) APIs.
SymLibTableAst
Library table (fp-lib-table, sym-lib-table) APIs.
SymLibTableDocument
Library table (fp-lib-table, sym-lib-table) APIs.