diff --git a/Cargo.lock b/Cargo.lock index 2905129ae..eefb854b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -530,7 +530,7 @@ dependencies = [ "rio_api 0.8.2", "rio_turtle 0.8.2", "serde", - "serde_canonical_json", + "serde_jcs", "serde_json", "sled", "toml 0.7.2", @@ -3207,6 +3207,12 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +[[package]] +name = "ryu-js" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6518fc26bced4d53678a22d6e423e9d8716377def84545fe328236e3af070e7f" + [[package]] name = "safemem" version = "0.3.3" @@ -3322,18 +3328,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_canonical_json" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef94ee2661f3ce924fa936258393d02155fa22c5a81125016a24069e23a0465" -dependencies = [ - "itoa 1.0.3", - "lazy_static", - "regex", - "serde_json", -] - [[package]] name = "serde_derive" version = "1.0.188" @@ -3345,6 +3339,17 @@ dependencies = [ "syn 2.0.38", ] +[[package]] +name = "serde_jcs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cacecf649bc1a7c5f0e299cc813977c6a78116abda2b93b1ee01735b71ead9a8" +dependencies = [ + "ryu-js", + "serde", + "serde_json", +] + [[package]] name = "serde_json" version = "1.0.108" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 2cc01b289..db45eba1c 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -28,7 +28,7 @@ ring = "0.17.6" rio_api = {version = "0.8", optional = true} rio_turtle = {version = "0.8", optional = true} serde = {version = "1", features = ["derive"]} -serde_canonical_json = "1.0.0" +serde_jcs = "0.1.0" serde_json = "1" sled = {version = "0.34", optional = true, features = ["no_logs"]} toml = {version = "0.7", optional = true} diff --git a/lib/src/commit.rs b/lib/src/commit.rs index 9f99b8db0..7235a44f9 100644 --- a/lib/src/commit.rs +++ b/lib/src/commit.rs @@ -511,13 +511,8 @@ impl Commit { commit_resource.remove_propval(urls::SIGNATURE); let json_obj = crate::serialize::propvals_to_json_ad_map(commit_resource.get_propvals(), None)?; - - let mut ser = serde_json::Serializer::with_formatter( - Vec::new(), - serde_canonical_json::CanonicalFormatter::new(), - ); - json_obj.serialize(&mut ser)?; - let json = String::from_utf8(ser.into_inner())?; + let json = serde_jcs::to_string(&json_obj) + .map_err(|e| format!("Failed to serialize Commit: {}", e))?; Ok(json) } }