[package] name = "ocs_plugin_api" version = "0.2.0" edition = "2021" description = "Stable, dependency-free contract for Open CAD Studio add-on packages: plugin manifest, version handshake, and ribbon/CadModule types." license = "GPL-3.0-only" [dependencies] # Serde is used unconditionally by the build-time-generated embedded type # registry types (`type_registry_types.rs`). The host feature no longer needs # to enable it explicitly. serde = { version = "1", features = ["derive"] } # Pulled in only by the `host` feature, which adds the `acadrust`-typed # `HostApi` runtime surface. The default crate stays dependency-free so engine # crates and external tooling can depend on the manifest/ribbon contract cheaply. acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "662a569", optional = true, features = ["serde"] } # Runtime IPC and serialization (host feature only). interprocess = { version = "2", optional = true } bincode = { version = "1", optional = true } thiserror = { version = "1", optional = true } libloading = { version = "0.8", optional = true } memmap2 = { version = "0.9", optional = true } rkyv = { version = "0.7", features = ["validation", "std"], optional = true } getrandom = { version = "0.2", optional = true } [features] # Enables the runtime host surface (`HostApi` trait) and the out-of-process # plugin runtime. The OpenCADStudio binary turns this on; pure-data consumers # leave it off. host = ["dep:acadrust", "dep:interprocess", "dep:bincode", "dep:thiserror", "dep:libloading", "dep:memmap2", "dep:rkyv", "dep:getrandom"] [build-dependencies] serde-reflection = "0.6" serde_json = "1" serde = { version = "1", features = ["derive"] } cargo-lock = "11" # acadrust is scanned at build time to generate the embedded type registry. acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "662a569", features = ["serde"] } [dev-dependencies] serde_json = "1"