Skip to content

Commit

Permalink
Use sonic-rs for parsing manifests (#555)
Browse files Browse the repository at this point in the history
  • Loading branch information
aumetra committed Jun 26, 2024
1 parent 7adab57 commit fb6a24d
Show file tree
Hide file tree
Showing 20 changed files with 158 additions and 141 deletions.
242 changes: 127 additions & 115 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion crates/kitsune-captcha/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ kitsune-http-client = { workspace = true }
serde = { version = "1.0.203", features = ["derive"] }
serde_urlencoded = "0.7.1"
sonic-rs = { workspace = true }
strum = { version = "0.26.2", features = ["derive"] }
strum = { version = "0.26.3", features = ["derive"] }
typed-builder = "0.18.2"

[lints]
Expand Down
2 changes: 1 addition & 1 deletion crates/kitsune-derive/impl/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ proc-macro = true
[dependencies]
proc-macro2 = "1.0.86"
quote = "1.0.36"
syn = { version = "2.0.67", features = ["full"] }
syn = { version = "2.0.68", features = ["full"] }

[lints]
workspace = true
2 changes: 1 addition & 1 deletion crates/kitsune-s3/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ futures-util = { version = "0.3.30", default-features = false }
http = "1.1.0"
kitsune-error = { workspace = true }
kitsune-http-client = { workspace = true }
quick-xml = { version = "0.33.0", features = ["serialize"] }
quick-xml = { version = "0.34.0", features = ["serialize"] }
rusty-s3 = "0.5.0"
serde = { version = "1.0.203", features = ["derive"] }
typed-builder = "0.18.2"
Expand Down
2 changes: 1 addition & 1 deletion crates/kitsune-search/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ pin-project-lite = "0.2.14"
serde = { version = "1.0.203", features = ["derive"] }
serde_urlencoded = "0.7.1"
speedy-uuid = { workspace = true }
strum = { version = "0.26.2", features = ["derive"] }
strum = { version = "0.26.3", features = ["derive"] }
tracing = "0.1.40"

[lints]
Expand Down
2 changes: 1 addition & 1 deletion crates/kitsune-test/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ rusty-s3 = { version = "0.5.0", default-features = false }
tokio = { version = "1.38.0", features = ["time"] }
triomphe = { workspace = true }
url = "2.5.2"
uuid = { version = "1.8.0", features = ["fast-rng", "v4"] }
uuid = { version = "1.9.1", features = ["fast-rng", "v4"] }

[lints]
workspace = true
2 changes: 1 addition & 1 deletion crates/kitsune-type/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ serde = { version = "1.0.203", features = ["derive"] }
smol_str = { version = "0.2.2", features = ["serde"] }
sonic-rs = { workspace = true }
speedy-uuid = { workspace = true, features = ["diesel"] }
strum = { version = "0.26.2", features = ["derive"] }
strum = { version = "0.26.3", features = ["derive"] }

[dev-dependencies]
pretty_assertions = "1.4.0"
Expand Down
2 changes: 1 addition & 1 deletion kitsune/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ serde_urlencoded = "0.7.1"
sonic-rs = { workspace = true }
simdutf8 = { workspace = true }
speedy-uuid = { workspace = true }
strum = { version = "0.26.2", features = ["derive", "phf"] }
strum = { version = "0.26.3", features = ["derive", "phf"] }
tempfile = "3.10.1"
time = "0.3.36"
tokio = { version = "1.38.0", features = ["full"] }
Expand Down
2 changes: 1 addition & 1 deletion lib/athena/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ required-features = ["redis"]
[dependencies]
ahash = "0.8.11"
async-trait = "0.1.80"
either = { version = "1.12.0", default-features = false, optional = true }
either = { version = "1.13.0", default-features = false, optional = true }
futures-util = { version = "0.3.30", default-features = false }
iso8601-timestamp = "0.2.17"
fred = { workspace = true, optional = true }
Expand Down
2 changes: 1 addition & 1 deletion lib/geomjeungja/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ unsize = "1.1.0"
[dev-dependencies]
insta = { version = "1.39.0", features = ["json"] }
rand_xorshift = "0.3.0"
serde_json = "1.0.117"
serde_json = "1.0.118"
tokio = { version = "1.38.0", features = ["macros", "rt"] }

[lints]
Expand Down
4 changes: 2 additions & 2 deletions lib/masto-id-convert/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ atoi_radix10 = "0.0.1"
nanorand = { version = "0.7.0", default-features = false, features = [
"wyrand",
] }
uuid = { version = "1.8.0", default-features = false }
uuid = { version = "1.9.1", default-features = false }

[features]
default = ["std"]
Expand All @@ -23,7 +23,7 @@ std = []
[dev-dependencies]
divan = "0.1.14"
time = "0.3.36"
uuid = { version = "1.8.0", features = ["v7"] }
uuid = { version = "1.9.1", features = ["v7"] }

[lints]
workspace = true
7 changes: 4 additions & 3 deletions lib/mrf-manifest/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,19 @@ olpc-cjson = { version = "0.1.3", optional = true }
schemars = { version = "0.8.21", features = ["impl_json_schema", "semver"] }
semver = { version = "1.0.23", features = ["serde"] }
serde = { version = "1.0.203", features = ["derive"] }
serde_json = { version = "1.0.117", optional = true }
serde_json = { version = "1.0.118", optional = true }
sonic-rs = { workspace = true, optional = true }
thiserror = { version = "1.0.61", optional = true }
wasm-encoder = { version = "0.211.1", optional = true }
wasmparser = { version = "0.211.1", optional = true }

[dev-dependencies]
serde_json = "1.0.117"
serde_json = "1.0.118"
insta = { version = "1.39.0", default-features = false, features = ["json"] }
wat = "1.211.1"

[features]
decode = ["dep:leb128", "dep:serde_json", "dep:thiserror", "dep:wasmparser"]
decode = ["dep:leb128", "dep:sonic-rs", "dep:thiserror", "dep:wasmparser"]
encode = ["dep:wasm-encoder", "serialise"]
serialise = ["dep:olpc-cjson", "dep:serde_json"]

Expand Down
4 changes: 2 additions & 2 deletions lib/mrf-manifest/src/decode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ pub type SectionRange = Range<usize>;
pub enum DecodeError {
/// Parsing of the JSON manifest failed
#[error(transparent)]
Parse(#[from] serde_json::Error),
Parse(#[from] sonic_rs::Error),

/// Parsing of the WASM component failed
#[error(transparent)]
Expand Down Expand Up @@ -43,7 +43,7 @@ pub fn decode(module: &[u8]) -> Result<Option<(Manifest<'_>, SectionRange)>, Dec
let mut section_range = payload.range();
section_range.start -= start_offset;

let manifest = serde_json::from_slice(payload.data())?;
let manifest = sonic_rs::from_slice(payload.data())?;

Ok(Some((manifest, section_range)))
}
5 changes: 3 additions & 2 deletions lib/mrf-tool/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,18 @@ license = "MIT OR Apache-2.0"
[dependencies]
clap = { workspace = true }
color-eyre = "0.6.3"
colored_json = "5.0.0"
mrf-manifest = { workspace = true, features = [
"decode",
"encode",
"serialise",
] }
serde_json = "1.0.117"
serde_json = "1.0.118"
wasmparser = "0.211.1"

[lints]
workspace = true

[dev-dependencies]
serde_json = "1.0.117"
serde_json = "1.0.118"
wat = "1.211.1"
4 changes: 2 additions & 2 deletions lib/mrf-tool/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ where
bail!("missing manifest in module");
};

let prettified = serde_json::to_string_pretty(&manifest)?;
writeln!(sink, "{prettified}")?;
colored_json::write_colored_json(&manifest, sink)?;
writeln!(sink)?;

Ok(())
}
Expand Down
5 changes: 4 additions & 1 deletion lib/mrf-tool/tests/manifest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,12 @@ fn add() {
#[test]
fn read() {
let manifest: Manifest<'_> = serde_json::from_str(MANIFEST).unwrap();
let pretty_manifest = serde_json::to_vec_pretty(&manifest).unwrap();
let module_with_manifest = module_with_manifest();

let pretty_manifest = colored_json::to_colored_json_auto(&manifest)
.unwrap()
.into_bytes();

let mut sink = Vec::new();
mrf_tool::read_manifest(&mut sink, &module_with_manifest).unwrap();
assert_eq!(sink.pop(), Some(b'\n'));
Expand Down
2 changes: 1 addition & 1 deletion lib/speedy-uuid/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ diesel = { version = "2.2.1", default-features = false, features = [
fred = { version = "9.0.3", default-features = false, optional = true }
serde = { version = "1.0.203", optional = true }
thiserror = "1.0.61"
uuid = { version = "1.8.0", features = ["fast-rng", "v7"] }
uuid = { version = "1.9.1", features = ["fast-rng", "v7"] }
uuid-simd = { version = "0.8.0", features = ["uuid"] }

[dev-dependencies]
Expand Down
4 changes: 2 additions & 2 deletions lib/tower-http-digest/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ license = "MIT OR Apache-2.0"
[dependencies]
base64-simd = "0.8.0"
bytes = "1.6.0"
either = { version = "1.12.0", default-features = false }
either = { version = "1.13.0", default-features = false }
http = "1.1.0"
http-body = "1.0.0"
memchr = "2.7.4"
pin-project-lite = "0.2.14"
sha2 = "0.10.8"
subtle = "2.6.0"
subtle = "2.6.1"
tower-layer = "0.3.2"
tower-service = "0.3.2"
tracing = { version = "0.1.40", default-features = false }
Expand Down
2 changes: 1 addition & 1 deletion lib/tower-stop-using-brave/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ version.workspace = true
license = "MIT OR Apache-2.0"

[dependencies]
either = "1.12.0"
either = "1.13.0"
http = "1.1.0"
once_cell = "1.19.0"
regex = "1.10.5"
Expand Down
2 changes: 1 addition & 1 deletion lib/trials/macros/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ proc-macro = true
[dependencies]
proc-macro2 = "1.0.86"
quote = "1.0.36"
syn = { version = "2.0.67", features = ["full", "visit-mut"] }
syn = { version = "2.0.68", features = ["full", "visit-mut"] }

[lints]
workspace = true

0 comments on commit fb6a24d

Please sign in to comment.