Merge pull request #2 from Milind220/codex/publish-kicad-ipc-rs-v0.1.0
chore: prepare kicad-ipc-rs v0.1.0 release
This commit is contained in:
commit
54ff957ab5
|
|
@ -168,8 +168,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
|
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kicad-ipc"
|
name = "kicad-ipc-rs"
|
||||||
version = "0.0.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"nng",
|
"nng",
|
||||||
"prost",
|
"prost",
|
||||||
|
|
|
||||||
24
Cargo.toml
24
Cargo.toml
|
|
@ -1,11 +1,22 @@
|
||||||
[package]
|
[package]
|
||||||
name = "kicad-ipc"
|
name = "kicad-ipc-rs"
|
||||||
version = "0.0.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
description = "Rust bindings for the KiCad IPC API"
|
description = "Rust client library for the KiCad IPC API (async-first)"
|
||||||
repository = "https://github.com/kicad-oss/kicad-ipc-rust"
|
repository = "https://github.com/Milind220/kicad-api-rust"
|
||||||
|
homepage = "https://github.com/Milind220/kicad-api-rust"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
keywords = ["kicad", "eda", "pcb", "ipc"]
|
||||||
|
categories = ["api-bindings", "asynchronous"]
|
||||||
|
include = [
|
||||||
|
"/src/**",
|
||||||
|
"/proto/**",
|
||||||
|
"/build.rs",
|
||||||
|
"/README.md",
|
||||||
|
"/LICENSE",
|
||||||
|
"/Cargo.toml",
|
||||||
|
]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["async"]
|
default = ["async"]
|
||||||
|
|
@ -23,8 +34,3 @@ tracing = { version = "0.1.41", optional = true }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
prost-build = "0.14.1"
|
prost-build = "0.14.1"
|
||||||
|
|
||||||
[[bin]]
|
|
||||||
name = "kicad-ipc-cli"
|
|
||||||
path = "test-scripts/kicad-ipc-cli.rs"
|
|
||||||
required-features = ["async"]
|
|
||||||
|
|
|
||||||
51
README.md
51
README.md
|
|
@ -1,28 +1,24 @@
|
||||||
# KiCad IPC API Rust
|
# kicad-ipc-rs
|
||||||
|
|
||||||
[](https://deepwiki.com/Milind220/kicad-ipc-rust)
|
[](https://deepwiki.com/Milind220/kicad-ipc-rust)
|
||||||
|
|
||||||
MIT-licensed Rust bindings for the KiCad IPC API.
|
MIT-licensed Rust client library for the KiCad IPC API.
|
||||||
|
|
||||||
## Current Status
|
## Status
|
||||||
|
|
||||||
Early scaffold phase. Core architecture + step-by-step implementation plan:
|
Alpha. `v0.1.0` release candidate.
|
||||||
- `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/prompts/IPC_RUST_EXECUTION_PLAN.md`
|
|
||||||
- `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/proto/README.md`
|
|
||||||
|
|
||||||
## Roadmap
|
- Async API: implemented and usable.
|
||||||
|
- Sync/blocking wrapper API: planned, not shipped yet.
|
||||||
1. Async-first layered client (`v0.1.0`)
|
- Real-world user testing: still limited.
|
||||||
2. Full PCB read surface + trace write capability (`v0.1.0`)
|
- Issues and PRs welcome.
|
||||||
3. Blocking wrapper parity (`v0.2.0`)
|
|
||||||
|
|
||||||
## Local Testing
|
## Local Testing
|
||||||
|
|
||||||
- CLI runbook: `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/docs/TEST_CLI.md`
|
- CLI runbook: `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/docs/TEST_CLI.md`
|
||||||
|
|
||||||
## Runtime Compatibility Notes (Current Test Rig)
|
## Runtime Compatibility Notes
|
||||||
|
|
||||||
- Last verified: 2026-02-20
|
|
||||||
- KiCad version (`kicad-ipc-cli version`): `10.0.0 (10.0.0-rc1)`
|
- KiCad version (`kicad-ipc-cli version`): `10.0.0 (10.0.0-rc1)`
|
||||||
|
|
||||||
Commands wrapped in this crate but currently unhandled/unsupported by this KiCad build:
|
Commands wrapped in this crate but currently unhandled/unsupported by this KiCad build:
|
||||||
|
|
@ -31,32 +27,13 @@ Commands wrapped in this crate but currently unhandled/unsupported by this KiCad
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `RefreshEditor` | `AS_UNHANDLED` | KiCad responds `no handler available for request of type kiapi.common.commands.RefreshEditor`. |
|
| `RefreshEditor` | `AS_UNHANDLED` | KiCad responds `no handler available for request of type kiapi.common.commands.RefreshEditor`. |
|
||||||
|
|
||||||
Deferred manual/runtime verification (implemented after 2026-02-20 while user unavailable):
|
Runtime-verified operations include:
|
||||||
|
|
||||||
- `GetKiCadBinaryPath`
|
|
||||||
- `GetPluginSettingsPath`
|
|
||||||
- `SaveDocument`
|
|
||||||
- `SaveCopyOfDocument`
|
|
||||||
- `RevertDocument`
|
|
||||||
- `RunAction`
|
|
||||||
- `CreateItems`
|
- `CreateItems`
|
||||||
- `UpdateItems`
|
- `UpdateItems`
|
||||||
- `DeleteItems`
|
- `DeleteItems`
|
||||||
- `ParseAndCreateItemsFromString`
|
|
||||||
- `SetNetClasses`
|
|
||||||
- `SetTextVariables`
|
|
||||||
- `UpdateBoardStackup`
|
|
||||||
- `InteractiveMoveItems`
|
|
||||||
|
|
||||||
## KiCad v10 RC1.1 API Completion Matrix
|
## KiCad v10 RC1.1 API Completion Matrix
|
||||||
|
|
||||||
Source of truth for this matrix:
|
|
||||||
- `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/proto/common/commands/base_commands.proto`
|
|
||||||
- `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/proto/common/commands/editor_commands.proto`
|
|
||||||
- `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/proto/common/commands/project_commands.proto`
|
|
||||||
- `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/proto/board/board_commands.proto`
|
|
||||||
- `/Users/milindsharma/Developer/kicad-oss/kicad-ipc-rust/proto/schematic/schematic_commands.proto`
|
|
||||||
|
|
||||||
Legend:
|
Legend:
|
||||||
- `Implemented` = wrapped in current Rust client (`src/client.rs`).
|
- `Implemented` = wrapped in current Rust client (`src/client.rs`).
|
||||||
- `Not yet` = exists in proto, not wrapped yet.
|
- `Not yet` = exists in proto, not wrapped yet.
|
||||||
|
|
@ -169,3 +146,11 @@ Legend:
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| Dedicated footprint-editor command proto | None in current snapshot |
|
| Dedicated footprint-editor command proto | None in current snapshot |
|
||||||
| Current path | Uses common editor/document commands via `DocumentType::DOCTYPE_FOOTPRINT` |
|
| Current path | Uses common editor/document commands via `DocumentType::DOCTYPE_FOOTPRINT` |
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
|
||||||
|
`v0.2.0` target:
|
||||||
|
- Add full sync/blocking wrapper API parity over async client.
|
||||||
|
- Expand runtime + integration testing coverage.
|
||||||
|
- Set up CI to run checks/tests on commits and PRs.
|
||||||
|
- Continue API hardening/docs/examples for stable `1.0` path.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue