[package] name = "ocs_plugin_api" version = "0.2.1" 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"] } serde_json = { version = "1", optional = true } # Pulled in only by the `host` feature, which adds the `opencadcodec`-typed # `HostApi` runtime surface. The default crate stays dependency-free so engine # crates and external tooling can depend on the manifest/ribbon contract cheaply. codec = { package = "opencadcodec", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "ab2eecd", optional = true, features = ["serde"] } # Runtime IPC and serialization (host feature only). interprocess = { version = "2", optional = true } bincode = { version = "1", optional = true } serde_bytes = { version = "0.11", 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:codec", "dep:serde_json", "dep:interprocess", "dep:bincode", "dep:serde_bytes", "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" # opencadcodec is scanned at build time to generate the embedded type registry. codec = { package = "opencadcodec", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "ab2eecd", features = ["serde"] } [dev-dependencies] serde_json = "1"