Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Quickstart

Prereqs

  1. KiCad running on the same machine.
  2. IPC socket available (default discovery, or KICAD_API_SOCKET).
  3. Optional auth token in KICAD_API_TOKEN if your setup requires it.

Async API (default)

Cargo.toml:

[dependencies]
kicad-ipc-rs = "0.3.1"
tokio = { version = "1", features = ["macros", "rt"] }
use kicad_ipc_rs::KiCadClient;

#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<(), kicad_ipc_rs::KiCadError> {
    let client = KiCadClient::builder()
        .client_name("quickstart-async")
        .connect()
        .await?;

    client.ping().await?;
    let version = client.get_version().await?;
    println!("KiCad: {}", version.full_version);
    Ok(())
}

Blocking API

Cargo.toml:

[dependencies]
kicad-ipc-rs = { version = "0.3.1", features = ["blocking"] }
use kicad_ipc_rs::KiCadClientBlocking;

fn main() -> Result<(), kicad_ipc_rs::KiCadError> {
    let client = KiCadClientBlocking::builder()
        .client_name("quickstart-blocking")
        .connect()?;

    client.ping()?;
    let version = client.get_version()?;
    println!("KiCad: {}", version.full_version);
    Ok(())
}

Environment Variables

VariablePurposeUsed by
KICAD_API_SOCKETExplicit IPC socket URI/path overrideasync + blocking
KICAD_API_TOKENIPC auth tokenasync + blocking

Next Steps