diff --git a/Cargo.lock b/Cargo.lock index 2edfbdbf2..e90d41448 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,6 +6,7 @@ version = 4 name = "OpenCADStudio" version = "2026.41.0" dependencies = [ + "acadrust", "allsorts", "ashpd", "base64", @@ -47,7 +48,6 @@ dependencies = [ "ocs_plugin_api", "ocs_save", "open", - "opencadcodec", "opencadgraph", "opencadkernel", "opencadkernel-constraints", @@ -93,6 +93,30 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" +[[package]] +name = "acadrust" +version = "0.6.4" +source = "git+https://github.com/HakanSeven12/opencadcodec.git?rev=cf3a040#cf3a04051240cf88440f8aaf41c4841fcb01d0d1" +dependencies = [ + "anyhow", + "bitflags 2.13.1", + "byteorder", + "encoding_rs", + "flate2", + "foldhash 0.2.0", + "indexmap", + "itoa", + "memmap2", + "nom 7.1.3", + "oem_cp", + "once_cell", + "rayon", + "ryu", + "serde", + "thiserror 2.0.18", + "web-time", +] + [[package]] name = "adler2" version = "2.0.1" @@ -4309,13 +4333,13 @@ dependencies = [ name = "ocs_plugin_api" version = "0.2.1" dependencies = [ + "acadrust", "bincode", "cargo-lock", "getrandom 0.2.17", "interprocess", "libloading", "memmap2", - "opencadcodec", "rkyv", "serde", "serde-reflection", @@ -4328,8 +4352,8 @@ dependencies = [ name = "ocs_save" version = "0.1.0" dependencies = [ + "acadrust", "bincode", - "opencadcodec", "serde", ] @@ -4337,12 +4361,12 @@ dependencies = [ name = "ocs_web_worker" version = "0.1.0" dependencies = [ + "acadrust", "bincode", "console_error_panic_hook", "getrandom 0.3.4", "js-sys", "ocs_save", - "opencadcodec", "serde", "sha2 0.10.9", "wasm-bindgen", @@ -4379,34 +4403,10 @@ dependencies = [ "libc", ] -[[package]] -name = "opencadcodec" -version = "0.6.0" -source = "git+https://github.com/HakanSeven12/opencadcodec.git?rev=d4ac66e#d4ac66ee5cf39d3a08282325d538d3bc55147e4a" -dependencies = [ - "anyhow", - "bitflags 2.13.1", - "byteorder", - "encoding_rs", - "flate2", - "foldhash 0.2.0", - "indexmap", - "itoa", - "memmap2", - "nom 7.1.3", - "oem_cp", - "once_cell", - "rayon", - "ryu", - "serde", - "thiserror 2.0.18", - "web-time", -] - [[package]] name = "opencadgraph" version = "0.1.0" -source = "git+https://github.com/HakanSeven12/opencadgraph.git?rev=8b315ab#8b315ab4e6fbddd7cee0c3ec0b81ee66efd423ed" +source = "git+https://github.com/HakanSeven12/opencadgraph.git?rev=800878a#800878aa14be9789568544e2e552a044ac727cae" dependencies = [ "opencadkernel", "serde_json", @@ -4415,10 +4415,10 @@ dependencies = [ [[package]] name = "opencadkernel" version = "0.1.0" -source = "git+https://github.com/HakanSeven12/opencadkernel.git?rev=85eb912#85eb91245f408646e75b9cc7189010d3fdfeba6f" +source = "git+https://github.com/HakanSeven12/opencadkernel.git?rev=2659c33#2659c339d0b57f7f858881174e3e04d5ef46af2f" dependencies = [ + "acadrust", "cavalier_contours", - "opencadcodec", "rustc-hash 2.1.3", "spade", ] @@ -4426,7 +4426,7 @@ dependencies = [ [[package]] name = "opencadkernel-constraints" version = "0.1.0" -source = "git+https://github.com/HakanSeven12/opencadkernel.git?rev=85eb912#85eb91245f408646e75b9cc7189010d3fdfeba6f" +source = "git+https://github.com/HakanSeven12/opencadkernel.git?rev=2659c33#2659c339d0b57f7f858881174e3e04d5ef46af2f" dependencies = [ "nalgebra", ] diff --git a/Cargo.toml b/Cargo.toml index c760df7de..3e148c609 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,10 +37,10 @@ rfd = "0.17" clap = { version = "4", features = ["derive", "string"] } env_logger = "0.11" log = "0.4" -codec = { package = "opencadcodec", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "d4ac66e", features = ["serde"] } -kernel = { package = "opencadkernel", git = "https://github.com/HakanSeven12/opencadkernel.git", rev = "85eb912", features = ["acis", "offset"] } -kernel-constraints = { package = "opencadkernel-constraints", git = "https://github.com/HakanSeven12/opencadkernel.git", rev = "85eb912" } -graph = { package = "opencadgraph", git = "https://github.com/HakanSeven12/opencadgraph.git", rev = "8b315ab" } +codec = { package = "acadrust", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "cf3a040", features = ["serde"] } +kernel = { package = "opencadkernel", git = "https://github.com/HakanSeven12/opencadkernel.git", rev = "2659c33", features = ["acis", "offset"] } +kernel-constraints = { package = "opencadkernel-constraints", git = "https://github.com/HakanSeven12/opencadkernel.git", rev = "2659c33" } +graph = { package = "opencadgraph", git = "https://github.com/HakanSeven12/opencadgraph.git", rev = "800878a" } dwg-thumbnailer = { path = "crates/dwg-thumbnailer" } # Shared SAVE serialization dispatch + web-worker wire format: one # implementation for the inline (fallback/native) path and the worker path. diff --git a/crates/ocs_plugin_api/Cargo.toml b/crates/ocs_plugin_api/Cargo.toml index 5e04cb8e7..52f9957a8 100644 --- a/crates/ocs_plugin_api/Cargo.toml +++ b/crates/ocs_plugin_api/Cargo.toml @@ -15,7 +15,7 @@ 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 = "d4ac66e", optional = true, features = ["serde"] } +codec = { package = "acadrust", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "cf3a040", optional = true, features = ["serde"] } # Runtime IPC and serialization (host feature only). interprocess = { version = "2", optional = true } @@ -39,7 +39,7 @@ 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 = "d4ac66e", features = ["serde"] } +codec = { package = "acadrust", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "cf3a040", features = ["serde"] } [dev-dependencies] serde_json = "1" diff --git a/crates/ocs_plugin_api/build.rs b/crates/ocs_plugin_api/build.rs index 14a6e33e7..8d838c605 100644 --- a/crates/ocs_plugin_api/build.rs +++ b/crates/ocs_plugin_api/build.rs @@ -1240,8 +1240,8 @@ fn generate_version_info(out_dir: &Path) { let opencadcodec = lockfile .packages .iter() - .find(|p| p.name.as_str() == "opencadcodec") - .expect("opencadcodec package in Cargo.lock"); + .find(|p| p.name.as_str() == "acadrust") + .expect("codec package (acadrust) in Cargo.lock"); let rustc = env::var_os("RUSTC").unwrap_or_else(|| "rustc".into()); let rustc_version = Command::new(rustc) diff --git a/crates/ocs_save/Cargo.toml b/crates/ocs_save/Cargo.toml index afe7ce279..190a7788b 100644 --- a/crates/ocs_save/Cargo.toml +++ b/crates/ocs_save/Cargo.toml @@ -10,6 +10,6 @@ publish = false # exactly one implementation. No UI/app dependencies — only the codec + serde. [dependencies] -codec = { package = "opencadcodec", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "d4ac66e", features = ["serde"] } +codec = { package = "acadrust", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "cf3a040", features = ["serde"] } bincode = "1.3" serde = { version = "1", features = ["derive"] } diff --git a/crates/ocs_web_worker/Cargo.toml b/crates/ocs_web_worker/Cargo.toml index 844b373ed..d1a597881 100644 --- a/crates/ocs_web_worker/Cargo.toml +++ b/crates/ocs_web_worker/Cargo.toml @@ -8,7 +8,7 @@ publish = false crate-type = ["cdylib"] [dependencies] -codec = { package = "opencadcodec", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "d4ac66e", features = ["serde"] } +codec = { package = "acadrust", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "cf3a040", features = ["serde"] } bincode = "1.3" serde = { version = "1", features = ["derive"] } console_error_panic_hook = "0.1" diff --git a/docs/plugin-template-v2/Cargo.toml b/docs/plugin-template-v2/Cargo.toml index a981c391e..46d871be9 100644 --- a/docs/plugin-template-v2/Cargo.toml +++ b/docs/plugin-template-v2/Cargo.toml @@ -16,4 +16,4 @@ ocs_plugin_api = { path = "../../crates/ocs_plugin_api", features = ["host"] } # entry): the plugin's entities and the host's re-exports are the same types # only when both resolve the same revision. The registration `rustc` / # `acadrust_source` gates enforce this at load time too. -acadrust = { package = "opencadcodec", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "d4ac66e" } +acadrust = { package = "acadrust", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "cf3a040" } diff --git a/plugins/opencad-python/Cargo.lock b/plugins/opencad-python/Cargo.lock index 54d1eb6ea..f9f33423d 100644 --- a/plugins/opencad-python/Cargo.lock +++ b/plugins/opencad-python/Cargo.lock @@ -2,6 +2,30 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "acadrust" +version = "0.6.4" +source = "git+https://github.com/HakanSeven12/opencadcodec.git?rev=cf3a040#cf3a04051240cf88440f8aaf41c4841fcb01d0d1" +dependencies = [ + "anyhow", + "bitflags", + "byteorder", + "encoding_rs", + "flate2", + "foldhash", + "indexmap", + "itoa", + "memmap2", + "nom", + "oem_cp", + "once_cell", + "rayon", + "ryu", + "serde", + "thiserror 2.0.20", + "web-time", +] + [[package]] name = "adler2" version = "2.0.1" @@ -1230,13 +1254,13 @@ dependencies = [ name = "ocs_plugin_api" version = "0.2.1" dependencies = [ + "acadrust", "bincode", "cargo-lock", "getrandom 0.2.17", "interprocess", "libloading 0.8.9", "memmap2", - "opencadcodec", "rkyv", "serde", "serde-reflection", @@ -1270,30 +1294,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "opencadcodec" -version = "0.6.0" -source = "git+https://github.com/HakanSeven12/opencadcodec.git?rev=d4ac66e#d4ac66ee5cf39d3a08282325d538d3bc55147e4a" -dependencies = [ - "anyhow", - "bitflags", - "byteorder", - "encoding_rs", - "flate2", - "foldhash", - "indexmap", - "itoa", - "memmap2", - "nom", - "oem_cp", - "once_cell", - "rayon", - "ryu", - "serde", - "thiserror 2.0.20", - "web-time", -] - [[package]] name = "optional" version = "0.5.0" diff --git a/src/io/recovery.rs b/src/io/recovery.rs index 700033b02..3ee2aebf3 100644 --- a/src/io/recovery.rs +++ b/src/io/recovery.rs @@ -561,7 +561,7 @@ fn structured_diagnostic_line(diagnostic: &codec::ReadDiagnostic) -> String { fn reader_revision() -> String { include_str!("../../Cargo.toml") .lines() - .find(|line| line.trim_start().starts_with("opencadcodec = { git =")) + .find(|line| line.trim_start().starts_with("codec = ") && line.contains("opencadcodec.git")) .and_then(|line| line.split("rev = \"").nth(1)) .and_then(|value| value.split('"').next()) .filter(|value| !value.is_empty())