Snapshot: V4 plugin API and host integration
This commit is contained in:
parent
448869ac35
commit
29c41a4041
36 changed files with 5463 additions and 253 deletions
|
|
@ -1,19 +1,28 @@
|
|||
[package]
|
||||
name = "ocs_plugin_api"
|
||||
version = "0.1.0"
|
||||
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/HakanSeven12/cadcodec.git", rev = "4736846", optional = true, features = ["serde"] }
|
||||
#
|
||||
# acadrust types appear in the HostApi trait object, so the plugin and host
|
||||
# MUST resolve the exact same acadrust source. The root Cargo.toml pins the
|
||||
# exact revision via [patch.crates-io]; this crate uses the same version
|
||||
# requirement so the patch applies consistently across the workspace.
|
||||
acadrust = { version = "0.4", optional = true, features = ["serde"] }
|
||||
|
||||
# Runtime IPC and serialization (host feature only).
|
||||
interprocess = { version = "2", optional = true }
|
||||
serde = { version = "1", features = ["derive"], optional = true }
|
||||
bincode = { version = "1", optional = true }
|
||||
thiserror = { version = "1", optional = true }
|
||||
libloading = { version = "0.8", optional = true }
|
||||
|
|
@ -25,4 +34,17 @@ getrandom = { version = "0.2", optional = true }
|
|||
# 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:serde", "dep:bincode", "dep:thiserror", "dep:libloading", "dep:memmap2", "dep:rkyv", "dep:getrandom"]
|
||||
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.
|
||||
# Use the same version requirement as the root Cargo.toml so the
|
||||
# [patch.crates-io] override applies here too.
|
||||
acadrust = { version = "0.4", features = ["serde"] }
|
||||
|
||||
[dev-dependencies]
|
||||
serde_json = "1"
|
||||
|
|
|
|||
Loading…
Reference in a new issue