Skip to main content

Crate kiutils_kicad

Crate kiutils_kicad 

Source
Expand description

§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.

Structs§

DesignRuleSummary
DesignRulesAst
DesignRulesDocument
DesignRulesFile
Diagnostic
FootprintAst
FootprintDocument
FootprintFile
FpLibTableFile
PcbArcSummary
PcbAst
PcbDimensionSummary
PcbDocument
PcbFile
PcbFootprintSummary
PcbGeneratedSummary
PcbGraphicSummary
PcbGroupSummary
PcbLayer
PcbNet
PcbProperty
PcbSegmentSummary
PcbSetupSummary
PcbTargetSummary
PcbViaSummary
PcbZoneSummary
ProjectAst
ProjectDocument
ProjectFile
SchematicAst
SchematicDocument
SchematicFile
SchematicPaperSummary
SchematicTitleBlockSummary
Span
SymLibTableFile
SymbolLibAst
SymbolLibDocument
SymbolLibFile
SymbolSummary
UnknownField
UnknownNode
VersionPolicy
WorksheetAst
WorksheetDocument
WorksheetFile
WorksheetSetupSummary

Enums§

Error
KiCadSeries
LibTableKind
Severity
WriteMode

Functions§

read_pcbs
read_pcbs_from_refs

Type Aliases§

FpLibTableAst
FpLibTableDocument
ProjectExtra
SymLibTableAst
SymLibTableDocument