Expand description
§KiParse
A KiCad file format parser for PCB and symbol files.
KiParse provides parsing capabilities for KiCad’s native file formats through a pragmatic approach focusing on what actually works with real-world files.
§Features
- Layer Extraction: Fast and reliable layer information parsing from PCB files
- Symbol Parsing: Complete symbol library parsing with metadata
- Robust Error Handling: Detailed error messages with context
- Memory Efficient: Optimized for large files
- Well Tested: Works with real-world KiCad files
§Quick Start
use kiparse::prelude::*;
let pcb_content = r#"(kicad_pcb
(version "20240108")
(generator "pcbnew")
(layers
(0 "F.Cu" signal)
(31 "B.Cu" signal)
)
)"#;
let pcb = parse_layers_only(pcb_content)?;
println!("Found {} layers", pcb.layers.len());
for (id, layer) in &pcb.layers {
println!("Layer {}: {} ({})", id, layer.name, layer.layer_type);
}§Module Organization
pcb- PCB file layer extraction (.kicad_pcb)symbol- Symbol library parsing (.kicad_sym)error- Error types and handling
§Performance Characteristics
KiParse is designed for practical use with real PCB files:
- Layer extraction: ~10MB/s
- Symbol parsing: ~15MB/s
- Memory usage: ~1.5x file size during parsing
Re-exports§
pub use error::KicadError;pub use error::Result;pub use pcb::parse_layers_only;pub use pcb::detail_parser::DetailParser;pub use symbol::symbol_parser::parse_symbol_lib;pub use pcb::types::PcbFile;pub use pcb::types::Layer;pub use pcb::types::Track;pub use pcb::types::Footprint;pub use pcb::types::Pad;pub use pcb::types::Via;pub use pcb::types::Zone;pub use pcb::types::Text;pub use pcb::types::Graphic;pub use pcb::types::Point;pub use pcb::types::Rect;pub use pcb::types::Arc;pub use symbol::types::Symbol;
Modules§
- error
- pcb
- PCB file parsing module for KiCad .kicad_pcb files
- prelude
- KiParse Prelude
- symbol
- Symbol library parsing module for KiCad .kicad_sym files
Constants§
- VERSION
- Library version information
Functions§
- version
- Returns version information for the library