Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
97dade0
WIP: Use SyncA to generate [a]sync APIs
martin-g Jul 28, 2025
5355929
More WIP
martin-g Jul 29, 2025
136c33b
More WIP
martin-g Aug 1, 2025
b61ba80
More WIP
martin-g Aug 4, 2025
66fef27
WIP
martin-g Aug 4, 2025
3e4b2b2
WIP
martin-g Aug 4, 2025
f65cfac
WIP: Fix regression with the usage of fully qualified serde_json::**
martin-g Aug 4, 2025
fa8d54b
Fix replacements for all modules
martin-g Aug 5, 2025
2ecbb64
WIP: Successful build for `clear && cargo build --no-default-features…
martin-g Aug 5, 2025
1a2e862
WIP: Replace some more Iterator combinators with plain for loops
martin-g Aug 5, 2025
ae85dda
WIP: `cargo build` now passes for both `tokio` and `sync` features
martin-g Aug 6, 2025
106512f
WIP: Make the tests async for bytes.rs, de.rs, decode.rs and encode.rs
martin-g Aug 6, 2025
4d917c1
WIP: Unit tests now build OK
martin-g Aug 6, 2025
3525a6b
All IT tests and examples use `sync` feature for now
martin-g Aug 6, 2025
784ddca
Fix the imports for append_to_existing.rs IT test
martin-g Aug 8, 2025
a5e46eb
WIP: Implement futures::Stream for Reader
martin-g Aug 8, 2025
6524b40
WIP: First steps to fix avro_derive
martin-g Aug 8, 2025
37adaf6
Get rid of Borror<Schema> for ResolvedSchema
martin-g Aug 8, 2025
184a322
WIP: Move back the pure data structures out of Synca control
martin-g Aug 11, 2025
e8f3386
Merge branch 'main' into async-with-synca
martin-g Aug 12, 2025
e24d215
WIP: More async for encode.rs & writer.rs
martin-g Aug 12, 2025
2a2d2d6
WIP: More fixes in types::Value:: resolve() and validate()
martin-g Aug 12, 2025
5f2967e
Optimize imports
martin-g Aug 13, 2025
a717e13
WIP More compilation error fixes
martin-g Aug 13, 2025
2cb2266
Import (and thus compile) ser_schema.rs only when `sync` feature is e…
martin-g Aug 13, 2025
90f938e
The `rstest` tests will be run only for `sync` for now
martin-g Aug 13, 2025
1d88f57
WIP: Fix the signature of SchemaExt::parse_reader()
martin-g Aug 13, 2025
d47035f
Move AvroSchema out of Synca's scope
martin-g Aug 13, 2025
c4feb6d
Merge branch 'main' into async-with-synca
martin-g Aug 13, 2025
c3d4725
format the code
martin-g Aug 13, 2025
5043683
Remove synca from codec.rs since there is nothing async in it
martin-g Aug 13, 2025
5887039
Rework TryFrom<types::Value> for serde_json::Value to ValueExt::try_f…
martin-g Aug 13, 2025
3b05483
Simplify the Stream impl of Reader
martin-g Aug 14, 2025
4b0b03f
Fix some Rustdoc tests
martin-g Aug 14, 2025
b5b9457
Merge branch 'main' into async-with-synca
martin-g Aug 14, 2025
45475e7
Use my fork of SyncA from git
martin-g Aug 14, 2025
26b2e30
Update README.md
martin-g Aug 14, 2025
24406ca
Mark SpecificSingleObjectWriter as sync only
martin-g Aug 14, 2025
59674f4
Formatting
martin-g Aug 14, 2025
c9e31c5
Mark some more Serde related items as sync only
martin-g Aug 14, 2025
036e012
Explicitly list the tokio features we need in Avro
martin-g Aug 15, 2025
5cb5527
Use sync Avro APIs for the wasm demo crate
martin-g Aug 15, 2025
88e8d71
Remove dbg leftovers
martin-g Aug 15, 2025
86c220d
Add an async version of the benchmark example
martin-g Aug 15, 2025
22e3c8b
Format async_benchmark.rs
martin-g Aug 15, 2025
b10603b
Add async version of tests/schema.rs IT test
martin-g Aug 15, 2025
0b92376
Explicitly list the used features for synca dependency
martin-g Aug 15, 2025
696a2fb
Merge branch 'main' into async-with-synca
martin-g Aug 25, 2025
aa1c263
Use futures::io::AsyncRead/Write instead of Tokio ones
martin-g Aug 25, 2025
f3f3c72
fmt && clippy
martin-g Aug 25, 2025
4239699
Rename the name of the generated modules to asynch and synch
martin-g Aug 25, 2025
5d210ce
Merge branch 'main' into async-with-synca
martin-g Sep 30, 2025
432c4a2
Merge branch 'main' into async-with-synca
martin-g Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
295 changes: 170 additions & 125 deletions Cargo.lock

Large diffs are not rendered by default.

148 changes: 143 additions & 5 deletions avro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,14 @@ categories.workspace = true
documentation.workspace = true

[features]
default = ["asynch"]
bzip = ["dep:bzip2"]
derive = ["dep:apache-avro-derive"]
snappy = ["dep:crc32fast", "dep:snap"]
xz = ["dep:liblzma"]
zstandard = ["dep:zstd"]
synch = []
asynch = ["dep:futures"]

[lib]
# disable benchmarks to allow passing criterion arguments to `cargo bench`
Expand All @@ -58,11 +61,21 @@ bigdecimal = { default-features = false, version = "0.4.8", features = ["std", "
bon = { default-features = false, version = "3.7.2" }
bzip2 = { version = "0.6.0", optional = true }
crc32fast = { default-features = false, version = "1.5.0", optional = true }
digest = { default-features = false, version = "0.10.7", features = ["core-api"] }
miniz_oxide = { default-features = false, version = "0.8.9", features = ["with-alloc"] }
digest = { default-features = false, version = "0.10.7", features = [
"core-api",
] }
miniz_oxide = { default-features = false, version = "0.8.9", features = [
"with-alloc",
] }
log = { workspace = true }
num-bigint = { default-features = false, version = "0.4.6", features = ["std", "serde"] }
regex-lite = { default-features = false, version = "0.1.7", features = ["std", "string"] }
num-bigint = { default-features = false, version = "0.4.6", features = [
"std",
"serde",
] }
regex-lite = { default-features = false, version = "0.1.7", features = [
"std",
"string",
] }
serde = { workspace = true }
serde_bytes = { workspace = true }
serde_json = { workspace = true }
Expand All @@ -73,7 +86,12 @@ thiserror = { default-features = false, version = "2.0.17" }
uuid = { default-features = false, version = "1.18.1", features = ["serde", "std"] }
liblzma = { default-features = false, version = "0.4.5", optional = true }
zstd = { default-features = false, version = "0.13.3", optional = true }

synca = { git = "https://github.com/martin-g/rs_synca/", branch = "add-support-for-use-path-replacing", default-features = false, features = [
"boxpin",
"usepath",
] }
#synca = { path = "/home/martin/git/rust/rs_synca/synca", default-features = false, features = ["boxpin", "usepath"] }
futures = { version = "0.3.31", optional = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
quad-rand = { default-features = false, version = "0.2.3" }
Expand All @@ -92,7 +110,127 @@ serial_test = "3.2.0"
sha2 = { default-features = false, version = "0.10.9" }
paste = { default-features = false, version = "1.0.15" }
rstest = { default-features = false, version = "0.26.1" }
tokio = { version = "1.47.0", default-features = false, features = [
"fs",
"io-util",
"macros",
"rt-multi-thread"
]}

tokio-util = { version = "0.7.16", default-features = false, features = [
"compat"
]}

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[[example]]
name = "benchmark"
path = "examples/benchmark.rs"
required-features = ["synch"]

[[example]]
name = "async_benchmark"
path = "examples/async_benchmark.rs"
required-features = ["asynch"]

[[example]]
name = "generate_interop_data"
path = "examples/generate_interop_data.rs"
required-features = ["synch"]

[[example]]
name = "specific_single_object"
path = "examples/specific_single_object.rs"
required-features = ["synch", "derive"]

[[example]]
name = "test_interop_data"
path = "examples/test_interop_data.rs"
required-features = ["synch"]

[[example]]
name = "test_interop_single_object_encoding"
path = "examples/test_interop_single_object_encoding.rs"
required-features = ["synch"]

[[example]]
name = "to_value"
path = "examples/to_value.rs"
required-features = ["synch"]

[[test]]
name = "append_to_existing"
path = "tests/append_to_existing.rs"
required-features = ["synch", "derive"]

[[test]]
name = "avro-3786"
path = "tests/avro-3786.rs"
required-features = ["synch"]

[[test]]
name = "avro-3787"
path = "tests/avro-3787.rs"
required-features = ["synch"]

[[test]]
name = "avro-rs-219"
path = "tests/avro-rs-219.rs"
required-features = ["synch"]

[[test]]
name = "avro-rs-226"
path = "tests/avro-rs-226.rs"
required-features = ["synch", "derive"]

[[test]]
name = "big_decimal"
path = "tests/big_decimal.rs"
required-features = ["synch"]

[[test]]
name = "codecs"
path = "tests/codecs.rs"
required-features = ["synch"]

[[test]]
name = "io"
path = "tests/io.rs"
required-features = ["synch"]

[[test]]
name = "schema"
path = "tests/schema.rs"
required-features = ["synch"]

[[test]]
name = "async_schema"
path = "tests/async_schema.rs"
required-features = ["asynch"]

[[test]]
name = "shared"
path = "tests/shared.rs"
required-features = ["synch"]

[[test]]
name = "to_from_avro_datum_schemata"
path = "tests/to_from_avro_datum_schemata.rs"
required-features = ["synch"]

[[test]]
name = "union_schema"
path = "tests/union_schema.rs"
required-features = ["synch"]

[[test]]
name = "uuids"
path = "tests/uuids.rs"
required-features = ["synch"]

[[test]]
name = "validators"
path = "tests/validators.rs"
required-features = ["synch"]
Loading
Loading