Unverified Commit 9fef09af authored by John DiSanti's avatar John DiSanti Committed by GitHub
Browse files

Implement Event Stream message frame ser/de in smithy-eventstream (#609)

* Implement Event Stream message frame ser/de in smithy-eventstream

* Add roundtrip fuzz target to smithy-eventstream

* Add more fuzz testing targets to smithy-eventstream

* Incorporate feedback

* Rename fuzz tests

* Refactor streaming use-case into MessageFrameDecoder

* Add fuzz target for fuzzing the message prelude

* Incorporate feedback
parent a50c966e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
members = [
    "smithy-http",
    "smithy-client",
    "smithy-eventstream",
    "smithy-http-tower",
    "smithy-json",
    "smithy-query",
+18 −0
Original line number Diff line number Diff line
[package]
name = "smithy-eventstream"
version = "0.1.0"
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "John DiSanti <jdisanti@amazon.com>"]
edition = "2018"

[features]
derive-arbitrary = ["arbitrary"]
default = []

[dependencies]
arbitrary = { version = "1", optional = true, features = ["derive"] }
bytes = "1"
crc32fast = "1"
smithy-types = { path = "../smithy-types" }

[dev-dependencies]
bytes-utils = "0.1"
+4 −0
Original line number Diff line number Diff line

target
corpus
artifacts
+54 −0
Original line number Diff line number Diff line
[package]
name = "smithy-eventstream-fuzz"
version = "0.1.0"
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "John DiSanti <jdisanti@amazon.com>"]
publish = false
edition = "2018"

[package.metadata]
cargo-fuzz = true

[dependencies]
arbitrary = { version = "1", features = ["derive"] }
bytes = "1"
crc32fast = "1"
libfuzzer-sys = "0.4"
smithy-types = { path = "../../smithy-types" }

[dependencies.smithy-eventstream]
features = ["derive-arbitrary"]
path = ".."

# Prevent this from interfering with workspaces
[workspace]
members = ["."]

[[bin]]
name = "raw_bytes"
path = "fuzz_targets/raw_bytes.rs"
test = false
doc = false

[[bin]]
name = "round_trip"
path = "fuzz_targets/round_trip.rs"
test = false
doc = false

[[bin]]
name = "corrected_prelude_crc"
path = "fuzz_targets/corrected_prelude_crc.rs"
test = false
doc = false

[[bin]]
name = "mutated_headers"
path = "fuzz_targets/mutated_headers.rs"
test = false
doc = false

[[bin]]
name = "prelude"
path = "fuzz_targets/prelude.rs"
test = false
doc = false
Loading