apache-avro
A library for working with Apache Avro in Rust
0.22.0
21M downloads/mo
#2029 most downloaded on crates.io
apache/avro-rs
What this package is like to depend on
Last release 13 days ago
10 Aug 2026
Ships fairly regularly
a new release about every 6 months
Some releases are documented
notes for 5 of 10 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
10 releases · first in 2022
2 releases in the last 12 months
see the full history below
Release timeline
10 releases · Jan 2022 to Aug 2026Releases
latest 10-
0.22.010 Aug 2026Release notes
Open source →The Apache Avro Rust SDK 0.22.0 release is a large release with lots of features, fixes and breaking changes. It is strongly recommended to read the Breaking changes and New features sections of the changelog.
What's changed
Breaking changes
- Resolve schema(ta) in the builder of
Writerby @Kriskras99 in #328- The builder now returns an
AvroResult
- The builder now returns an
- Rework schema compatibility by @Kriskras99 in #342
SchemaCompatiblity::can_readandSchemaCompatiblity::mutual_readnow return aCompatiblitytype
- Bump MSRV from 1.85 to 1.88 by @Kriskras99 in #342, #348
Schema::Durationnow has aFixedSchemaallowing access to attributes andSerializeandDeserializeis implemented forapache_avro::Durationby @jdarais in #382AvroSchemaandAvroSchemaComponentare no longer behind thederivefeature and have moved fromapache_avro::schema::derivetoapache_avro::serdeby @martin-g in #394 and @Kriskras99 in #433- Change the implementation of
AvroSchemaComponentforUuidfromSchema::Uuid(String)toSchema::Uuid(Fixed(name: "org.apache.avro.rust.Uuid", size: 16))and allow overwriting a field's schema with thewithattribute when using#[derive(AvroSchema)]by @Kriskras99 in #397, #558- When
#[avro(with)]is specified without an argument, it will call theget_schema_in_ctxt(&mut HashSet<Name>, NamespaceRef<'_>) -> Schemain the same module as specified by#[serde(with)] - When
#[avro(with = path::to::some_fn)]is specified with a path, the function it's pointing to will be called with two parameters&mut HashSet<Name>, NamespaceRef<'_> - When
#[avro(with = || {})]is specified with a closure, that closure is invoked - The name of the schema for
uuid::Uuidisorg.apache.avro.rust.uuid - The schema for
Uuidcan be changed back to aSchema::Uuid(String)using#[avro(with = || Schema::Uuid(UuidSchema::String))]on a field with aUuidand settinghuman_readabletotrue
- When
- Replace the
From<&str>implementations forNameandAliaswithTryFrom<&str>,TryFrom<String>, andFromStras the conversion is not fallible by @Kriskras99 in #423 - Rework
SpecificSingleObjectWriterremoving::with_capacityand changingwrite_avro_datum_refto also take a&NamesRefparameter by @Kriskras99 in #445 - Remove the
defaultfield fromFixedSchemaas it is not in the specification by @Kriskras99 in #460 AvroSchemaComponent::get_schema_in_ctxtnow takes a&mut HashSet<Name>parameter for thenamed_schemasparameter by @Kriskras99 in #471- Replace the
Schema::map{,_with_attributes}andSchema::array{,_with_attributes}with builders allowing the user to set more fields by @martin-g in #472- This also adds
Schema::r#enum,Schema::fixedandSchema::record
- This also adds
- Stricter schema parsing by @Kriskras99 in #479
- This now rejects schemas that were previously accepted by this library, they were already rejected by parsers in different languages
Alias::nameandAlias::namespacenow return references by @Kriskras99 in #486- Remove unused
orderandpositionfields inRecordFieldby @Kriskras99 in #491 - Rework
Nameto be more performant which requires changing theSchemaNameValidatortrait by @Kriskras99 in #493- The regex returned by
SchemaNameValidator::regexmust have a capture group namednamewhich captures the unqualified name when not overriding theSchemaNameValidator::validatefunction - The
SchemaNameValidator::validatemust now return the start byte of the unqualified name
- The regex returned by
- Support enums and tuples in
SchemaAwareSerializer, implementSchemaAwareDeserializerand document the mapping between the Serde and Avro data models by @Kriskras99 in #512, #558- The
SchemaAware*now have specific requirements for what input they accept, so type definitions might need to be modified to make them work with the new code (especially for enums and tuples) - This also makes
human_readableconfigurable per reader and writer instance - Array and Map serialisation will not write the block size in bytes unless configured to do so, allowing unbuffered serialisation
- The
AvroSchemaComponentimplementation forstd::time::Durationhas changed to match the (de)serialisation implementation as defined by Serde- It is now a
Schema::Record(name: "org.apache.avro.rust.Duration", fields: ["secs": "org.apache.avro.rust.u64", "nanos": "long"])
- It is now a
- The
AvroSchemaComponentimplementation forBigDecimalis now aSchema::Stringmatching the (de)serialisation implementation as defined by bigdecimal- It can be changed back to a
Schema::Stringusing#[serde(with = "apache_avro::serde::bigdecimal"), avro(with)]on a field with aBigDecimal
- It can be changed back to a
- The
SchemaAwareDeserializerdoes not support schema resolution, for that use the oldfrom_valueimplementation (see #575)
- The
New features
- Make
DeflateSettings::compression_levelpublic by @EmilyMatt in #335 - Support
fixedas a type foruuidby @Kriskras99 in #339 - Don't depend on Serde to provide fields in the right order by @Kriskras99 in #351
- It is still recommended to match the field order between the type and the schema as out-of-order serialisation incurs a performance penalty
- Support the
#[serde(flatten)]attribute by @Kriskras99 in #359, #448- This attribute is not supported when using
apache_avro::serde::to_value
- This attribute is not supported when using
- Use the Serde attributes and check for conflict with the Avro attributes by @Kriskras99 in #377
- This deprecates the Avro attributes for which the value must always match the Serde attribute:
- Container attributes:
#[avro(name = "..")]->#[serde(rename = "..")]#[avro(rename_all = "..")]->#[serde(rename_all = "..")]
- Variant attributes:
#[avro(rename = "..")]->#[serde(rename = "..")]
- Field attributes:
#[avro(alias = "..")]->#[serde(alias = "..")]#[avro(rename = "..")]->#[serde(rename = "..")]#[avro(skip)]->#[serde(skip)]
- Container attributes:
- On nightly compilers, using deprecated attributes will throw a compiler warning
- This deprecates the Avro attributes for which the value must always match the Serde attribute:
- Support the
#[serde(transparent)]attribute on structs by @Kriskras99 in #398 - Implement
AvroSchemaComponentforchar,u64,u128,i128,()by @Kriskras99 in #414, #486, #558char:Schema::Stringu64:Schema::Fixed(name: "org.apache.avro.rust.u64", size: 8)u128:Schema::Fixed(name: "org.apache.avro.rust.u128", size: 16)i128:Schema::Fixed(name: "org.apache.avro.rust.i128", size: 16)():Schema::Null
- Add
RecordSchemaBuilder::try_namewhich accepts anyTryInto<Name>and makeRecordFieldBuilder::nametake anyInto<String>by @martin-g in #429 - Move and rename the
serde_avro_*modules toapache_avro::serde::*, the old modules are still available but deprecated and will be removed in a future release by @Kriskras99 in #430apache_avro::serde_avro_bytes->apache_avro::serde::bytesapache_avro::serde_avro_bytes_opt->apache_avro::serde::bytes_optapache_avro::serde_avro_fixed->apache_avro::serde::fixedapache_avro::serde_avro_fixed_opt->apache_avro::serde::fixed_optapache_avro::serde_avro_slice->apache_avro::serde::sliceapache_avro::serde_avro_slice_opt->apache_avro::serde::slice_opt
- Add posibility to append values to writer without validating by @Kriskras99 in #447
- This renames
Writer::appendtoWriter::append_valuealthough the old function currently still exists and is deprecated - This adds
Writer::unvalidated_append_valueandWriter::unvalidated_append_value_refwhich skip the validation step
- This renames
- Rework the documentation by @Kriskras99 in #451
- The introduction to Avro itself was moved to the
documentation::primermodule - Using the crate the "Avro" way was moved to the
documentation::genericmodule - Using the crate the "Serde" way was moved to the
serdemodule - Calculating schema fingerprints was moved to the
Schema::fingerprintfunction - Custom name validators was moved to the
validatormodule - Custom schema equality was moved to the
schema_equalitymodule - Document
#[derive(AvroSchema)]in theserdemodule - Suggest the
booleantype when a schema contains a type namedboolthat does not resolve by @Kriskras99 in #459 - Add support for resetting a
Writerbacked by a clearable buffer by @Kriskras99 in #469 - Make
Schema::denormalizepublic by @Kriskras99 in #470 - Allow types implementing
AvroSchemaComponentto provide a default value by @Kriskras99 in #477 - Custom
Debugimplementations for*Schematypes hiding empty fields for more readability by @Kriskras99 in #488 - Add a builder for unions:
UnionSchemaBuilderby @Kriskras99 in #486 - Replace the
from_avro_datum*functions withGenericDatumReaderby @Kriskras99 in #496- The functions are still available, but are deprecated and will be removed in a future version
- Replace the
to_datum*functions withGenericDatumWriterby @Kriskras99 in #499- The functions are still available, but are deprecated and will be removed in a future version
- Support
#[serde(remote = "..")]by @Kriskras99 in #564 - Support deriving
AvroSchemaon enums and tuples by @Kriskras99 in #569- If some enum or tuple is not supported, and you think it should, please open an issue!
- Allow to supply own names when using
Value::resolveandValue::Validateby @Kriskras99 in #579
Fixes
- Choose correct schema when serializing an
Option<Enum>by @PookieBuns in #337 - Support deserialization of
BigDecimalfields when using "the Serde way" by @eft-prima in #338 - Don't write the
avro.codecattribute if the codec is Null by @Kriskras99 in #356 - Resolving a
Value::Longinto aValue::Intno longer truncates and returns an error instead by @Kriskras99 in #392 logicalTypeis no longer included in custom attributes by @jdarais in #395- Do not match types by name in the derive code by @Kriskras99 in #401
- Calculate the
RecordSchemalookup table onRecordSchemaBuilder::build()by @martin-g in #411 UnionSchema::newno longer accepts multiple schemas with the same name by @marting-g in #413- Support recursive types for
Schema::independent_canonical_formby @Kriskras99 in #420 - Select the first union variant with the correct byte length when serializing by @Kriskras99 in #421
- Use RAII for setting thread locals used during (de)serialisation so failure doesn't impact the next (de)serialisation by @martin-g in #432
- Ensure
SpecificSingleObjectWriterwrites header on every call by @flxo in #438 - Don't allow serializing
bytesas aUuid::Stringby @Kriskras99 in #441 - Don't allow resolving a schema that is already known by @martin-g in #444
- Don't silently truncate numbers larger than
i64::MAXwhen converting from JSON by @Kriskras99 in #450 - Fix links in rustdoc by @martin-g in #505
- Remove unused
CHANGELOG.mdby @martin-g in #541 - Support
BigDecimalinDeserializerwhenapache_avro::serde::bigdecimalis used by @jdarais in #543 - Return an error instead of panicking on invalid name, alias, or type reference by @youichi-uda in #547
- Accept JSON string defaults for decimal fields in unions by @valdo404 and @slavische in #580
- Don't allow negative object counts and don't allow negative block lengths by @MitNarodia in #586
- Bound decompression size to guard against decompression bombs by @iemejia in #582
- Bound the size of decoded
Value::MapandValue::Arrayto the max allocation size by @iemejia in #581 - Support enum inside an untagged enum by @Kriskras99 in #591
Internal changes
- Simplify reader tests by @Kriskras99 in #355
- Fix the
test_overflowtest to actually test for overflow by @Kriskras99 in #357 - Uncomment old test by @Kriskras99 in #362
- Enable the
stdfeature for Serde by @Kriskras99 in #364- This feature was already transitively enabled by dependencies on the
avrocrate but not when building only theavro_derivecrate
- This feature was already transitively enabled by dependencies on the
- Configure Clippy in the workspace instead of the CI by @Kriskras99 in #369
- Remove unnecessary mod in
avro_derive/tests/derive.rsby @Kriskras99 in #375 - Add CI check for license headers in all non-generated files by @martin-g in #387
- Debug print the error in
TestResultby @martin-g in #393 - Split
schema.rsin various modules by @martin-g in #405, #409, #410, #412, #415, #417 - Simplify
Deserializerby @Kriskras99 in #416 - Disable the test logger helper on wasm32 by @martin-g in #426
- Remove anyhow as a dev-dependency by @martin-g in #427
- Simplify
Serializerby @Kriskras99 in #428 - Restructure resolving logic by @Kriskras99 in #442
- Remove a benchmark for serde_json by @martin-g in #446
- Split
reader.rsinto various modules by @martin-g in #474, #475, #478 - Small code improvements by @Kriskras99 in #336, #486, #513, #559
- Refactor derive code by @Kriskras99 in #487, #560, #561
- Split
writer.rsinto various modules by @Kriskras99 in #497, #498 - Use macrotest to test the
AvroSchemaderive generated code by @Kriskras99 in #501 - Run tests on fewer targets by @Kriskras99 in #503
- Add CI step for
cargo docby @martin-g in #507 - Apply some suggestion from
-Dclippy::pedanticby @martin-g in #514 - Do not use Dependabot to update Github Actions by @martin-g in #525
- Enabling updating PR branches from Github UI by @martin-g in #527
- Optimize
Alias::new()andParser::fix_aliases_namespaceby @Kriskras99 in #557 - Fix clippy lints from Rust 1.90.1 by @martin-g in #330
- Fix CI setup by @Kriskras99 in #577
- Group
github/codeql-action/*updates by @Kriskras99 in #592 - Replace
dtolnay/rust-toolchainwith manualrustupcalls by @martin-g in #596
Dependency bumps
- Bump actions/cache from 5 to 6.1.0
- Bump actions/checkout from 5 to 7.0.0
- Bump actions/dependency-review-action from 4 to 5.0.0
- Bump actions/setup-java from 5.0.0 to 5.6.0
- Bump bigdecimal from 0.4.9 to 0.4.10
- Bump bon from 3.8.1 to 3.9.3
- Bump criterion from 0.7.0 to 0.8.2
- Bump darling from 0.21.3 to 0.23.0
- Bump digest from 0.11.2 to 0.11.3
- Bump env_logger from 0.11.8 to 0.11.11
- Bump github/codeql-action/* from 4.36.2 to 4.37.1
- Bump hex-literal from 1.0.0 to 1.1.0
- Bump liblzma from 0.4.5 to 0.4.7
- Bump log from 0.4.28 to 0.4.33
- Bump miniz_oxide from 0.8.9 to 0.9.1
- Bump num-bigint from 0.4.6 to 0.4.8
- Bump proc-macro2 from 1.0.103 to 1.0.107
- Bump proptest from 1.9.0 to 1.11.0
- Bump quote from 1.0.41 to 1.0.47
- Bump rand from 0.9.2 to 0.10.2
- Bump regex-lite from 0.1.8 to 0.1.9
- Bump rustversion from 1.0.22 to 1.0.23
- Bump serde from 1.0.228 to 1.0.229
- Bump serde_json from from 1.0.145 to 1.0.150
- Bump sha2 from 0.10.9 to 0.11.0
- Bump shogo82148/actions-setup-perl from 1 to 1.42.0
- Bump snap from 1.1.0 to 1.1.2
- Bump strum from 0.27.2 to 0.28.0 and replace strum-macros with
features = ["derive"]on strum by @Kriskras99 in #483 - Bump syn from 2.0.108 to 2.0.119
- Bump taiki-e/install-action from 2 to 2.84.0
- Bump thiserror from 2.0.17 to 2.0.19
- Bump trybuild from 1.0.114 to 1.0.118
- Bump uuid from 1.18.1 to 1.23.5
- Bump wasm-bindgen from 0.2.97 to 0.2.114
- Bump wasm-bindgen-test from 0.3.55 to 0.3.64
- Bump zizmorcore/zizmore-action from 0.5.7 to 0.6.0
- Replace ctor (v0.6.0) with linktime (v0.18.0)
- Pin cargo-rdme to 1.4.2 by @martin-g in #567
- This is because cargo-rdme 2 depends on specific nightly versions and therefore easily breaks in CI
New Contributors
Note truncated.
- Resolve schema(ta) in the builder of
-
0.21.013 Nov 2025Release notes
Open source →What's Changed
- chore(deps): Bump actions/checkout from 4 to 5 by @dependabot[bot] in #269
- chore(deps): Bump syn from 2.0.105 to 2.0.106 by @dependabot[bot] in #270
- chore(deps): Bump proc-macro2 from 1.0.97 to 1.0.101 by @dependabot[bot] in #271
- chore(deps): Bump thiserror from 2.0.14 to 2.0.15 by @dependabot[bot] in #272
- chore(deps): Bump serde_json from 1.0.142 to 1.0.143 by @dependabot[bot] in #273
- chore(deps): Bump actions/setup-java from 4.7.1 to 5.0.0 by @dependabot[bot] in #277
- chore(deps): Bump bon from 3.7.0 to 3.7.1 by @dependabot[bot] in #274
- chore(deps): Bump thiserror from 2.0.15 to 2.0.16 by @dependabot[bot] in #275
- chore(deps): Bump darling from 0.21.2 to 0.21.3 by @dependabot[bot] in #279
- chore(deps): Bump regex-lite from 0.1.6 to 0.1.7 by @dependabot[bot] in #278
- chore(deps): Bump bon to 3.7.2 by @Fokko in #280
- chore(deps): Bump uuid from 1.18.0 to 1.18.1 by @dependabot[bot] in #281
- chore(deps): Bump log from 0.4.27 to 0.4.28 by @dependabot[bot] in #282
- chore(deps): Bump wasm-bindgen-test from 0.3.50 to 0.3.51 by @dependabot[bot] in #283
- chore: switch dependency from xz2 to liblzma by @timsaucer in #284
- chore(deps): Bump serde_bytes from 0.11.17 to 0.11.18 by @dependabot[bot] in #288
- chore(deps): Bump serde_json from 1.0.143 to 1.0.145 by @dependabot[bot] in #286
- chore(deps): Bump serde_bytes from 0.11.18 to 0.11.19 by @dependabot[bot] in #290
- chore(deps): Bump serde from 1.0.223 to 1.0.225 by @dependabot[bot] in #289
- chore(deps): Bump wasm-bindgen-test from 0.3.51 to 0.3.52 by @dependabot[bot] in #291
- chore(deps): Bump wasm-bindgen-test from 0.3.52 to 0.3.53 by @dependabot[bot] in #294
- chore(deps): Bump proptest from 1.7.0 to 1.8.0 by @dependabot[bot] in #297
- chore(deps): Bump anyhow from 1.0.99 to 1.0.100 by @dependabot[bot] in #295
- chore(deps): Bump serde from 1.0.225 to 1.0.226 by @dependabot[bot] in #296
- ci: Set -o pipefail in CI by @Kriskras99 in #299
- chore(deps): Bump wasm-bindgen-test from 0.3.53 to 0.3.54 by @dependabot[bot] in #300
- chore(deps): Bump serde from 1.0.226 to 1.0.227 by @dependabot[bot] in #301
- chore(deps): Bump liblzma from 0.4.4 to 0.4.5 by @dependabot[bot] in #302
- chore(deps): Bump quote from 1.0.40 to 1.0.41 by @dependabot[bot] in #303
- chore(deps): Bump thiserror from 2.0.16 to 2.0.17 by @dependabot[bot] in #304
- chore(deps): Bump serde from 1.0.227 to 1.0.228 by @dependabot[bot] in #305
- fix: Do not store "items" for Schema::Array and "values" for Schema::Map in custom_attributes by @martin-g in #306
- chore(deps): Bump bon from 3.7.2 to 3.8.0 by @dependabot[bot] in #307
- chore(deps): Bump ctor from 0.5.0 to 0.6.0 by @dependabot[bot] in #309
- chore(deps): Bump bon from 3.8.0 to 3.8.1 by @dependabot[bot] in #308
- fix: Change TestError from uninhabited enum to an empty struct by @martin-g in #313
- chore(deps): Bump regex-lite from 0.1.7 to 0.1.8 by @dependabot[bot] in #312
- chore(deps): Bump bzip2 from 0.6.0 to 0.6.1 by @dependabot[bot] in #314
- chore(deps): Bump bigdecimal from 0.4.8 to 0.4.9 by @dependabot[bot] in #315
- chore(deps): Bump syn from 2.0.106 to 2.0.107 by @dependabot[bot] in #316
- chore(deps): Bump proc-macro2 from 1.0.101 to 1.0.102 by @dependabot[bot] in #318
- chore(deps): Bump syn from 2.0.107 to 2.0.108 by @dependabot[bot] in #317
- chore(deps): Bump proc-macro2 from 1.0.102 to 1.0.103 by @dependabot[bot] in #319
- chore(deps): Bump proptest from 1.8.0 to 1.9.0 by @dependabot[bot] in #320
- chore(deps): Bump wasm-bindgen-test from 0.3.54 to 0.3.55 by @dependabot[bot] in #321
- chore: silence deprecation warning for generic-array by @Kriskras99 in #324
- Commiting Unit Test with Failing Byte Array Deserialization by @roofdiver in #293
- refactor: Replace
Oncewith now stableOnceLockby @Kriskras99 in #259 - Issue #252: Add an
Option<String>field with a#[avro(default = "null")]by @martin-g in #260 - feat!: Change default of
is_human_readabletofalseby @Kriskras99 in #325 - fix: documentation linked to private items by @Kriskras99 in #327
New Contributors
- @Fokko made their first contribution in #280
- @timsaucer made their first contribution in #284
- @roofdiver made their first contribution in #293
Full Changelog: rel/release-0.20.0...rel/release-0.21.0-rc0
-
0.20.025 Aug 2025Release notes
Open source →What's Changed
- chore: Fix the build with latest nightly compiler (06.06.2025) by @martin-g in #204
- feat: Add support for rename of enum variants in AvroSchema macro by @Vaalla42 in #205
- chore(deps): Bump proptest from 1.6.0 to 1.7.0 by @dependabot[bot] in #206
- chore(deps): Bump bon from 3.6.3 to 3.6.4 by @dependabot[bot] in #208
- chore(deps): Bump miniz_oxide from 0.8.8 to 0.8.9 by @dependabot[bot] in #209
- chore(deps): Bump syn from 2.0.101 to 2.0.102 by @dependabot[bot] in #210
- feat: Add support for rename_all in AvroSchema macro by @Vaalla42 in #207
- feat: Add
#[automatically_derived]attribute to the auto generated impls by @martin-g in #211 - chore(deps): Bump syn from 2.0.102 to 2.0.103 by @dependabot[bot] in #212
- chore(deps): Bump syn from 2.0.103 to 2.0.104 by @dependabot[bot] in #214
- feat: Accept more inputs for Schema::independent_canonical_form by @Kriskras99 in #215
- chore: Bump the Minimal Supported Rust Version from 1.74.0 to 1.85.0 by @martin-g in #217
- chore(deps): Bump bzip2 from 0.5.2 to 0.6.0 by @dependabot[bot] in #213
- chore: Bump hex-literal from 0.4.1 to 1.0.0 by @dependabot[bot] in #134
- chore(deps): Bump criterion from 0.5.1 to 0.6.0 by @dependabot[bot] in #198
- chore: Bump Rust edition to 2024 by @martin-g in #218
- Fixes #219: Use
serdeas a feature for bigdecimal decimal by @martin-g in #221 - fix: Also (maybe) write header on
Writer::flush. by @Kriskras99 in #222 - chore(deps): Bump darling from 0.20.11 to 0.21.0 by @dependabot[bot] in #223
- chore(deps): Bump crc32fast from 1.4.2 to 1.5.0 by @dependabot[bot] in #224
- fix: Improve the error message for unresolved union variant by @martin-g in #228
- chore(deps): Bump serde_json from 1.0.140 to 1.0.141 by @dependabot[bot] in #233
- chore(deps): Bump strum from 0.27.1 to 0.27.2 by @dependabot[bot] in #231
- chore(deps): Bump rand from 0.9.1 to 0.9.2 by @dependabot[bot] in #234
- chore(deps): Bump bon from 3.6.4 to 3.6.5 by @dependabot[bot] in #235
- chore(deps): Bump strum_macros from 0.27.1 to 0.27.2 by @dependabot[bot] in #232
- chore: Remove deprecated items in 0.11.0 and 0.15.0 by @martin-g in #236
- feat: Wrap
Errorinto aBoxso it's size shrinks from 104 bytes to 8 bytes by @Kriskras99 in #230 - feat: avro_derive: Allow providing a name other than the ident by @bryanburgers in #239
- fix #226: Index-Out-Of-Bounds panic when using #[serde(skip_serializing_if=..)] by @elad-yosifon in #227
- chore: Set the version to 0.20.0 by @martin-g in #240
- chore: Delete rustfmt.toml by @martin-g in #241
- doc: Document that the fields' order is important for "the serde way" by @martin-g in #242
- chore(deps): Bump ctor from 0.4.2 to 0.4.3 by @dependabot[bot] in #244
- chore(deps): Bump criterion from 0.6.0 to 0.7.0 by @dependabot[bot] in #243
- chore(deps): Bump rstest from 0.25.0 to 0.26.1 by @dependabot[bot] in #245
- chore(deps): Bump serde_json from 1.0.141 to 1.0.142 by @dependabot[bot] in #248
- chore: AVRO-4170: Improve sync marker error message for block reads by @martin-g in #249
- chore(deps): Bump darling from 0.21.0 to 0.21.1 by @dependabot[bot] in #250
- chore: Fix clippy issues with Rust 1.89.0 by @martin-g in #251
- chore(deps): Bump bon from 3.6.5 to 3.7.0 by @dependabot[bot] in #256
- chore(deps): Bump proc-macro2 from 1.0.95 to 1.0.96 by @dependabot[bot] in #257
- chore(deps): Bump ctor from 0.4.3 to 0.5.0 by @dependabot[bot] in #258
- refactor: Simplify the UUID decoding logic by @Kriskras99 in #255
- tests: Use pretty_assertions for avro_derive IT tests too by @martin-g in #261
- chore(deps): Bump thiserror from 2.0.12 to 2.0.14 by @dependabot[bot] in #262
- chore(deps): Bump proc-macro2 from 1.0.96 to 1.0.97 by @dependabot[bot] in #263
- chore(deps): Bump uuid from 1.17.0 to 1.18.0 by @dependabot[bot] in #264
- chore(deps): Bump anyhow from 1.0.98 to 1.0.99 by @dependabot[bot] in #265
- Include license and notice files in published crates by @ankane in #266
- chore(deps): Bump syn from 2.0.104 to 2.0.105 by @dependabot[bot] in #267
- chore(deps): Bump darling from 0.21.1 to 0.21.2 by @dependabot[bot] in #268
New Contributors
- @Vaalla42 made their first contribution in #205
- @bryanburgers made their first contribution in #239
- @elad-yosifon made their first contribution in #227
- @ankane made their first contribution in #266
Full Changelog: rel/release-0.19.0...rel/release-0.20.0
-
0.19.027 Jun 2025Release notes
Open source →What's Changed
- feat: Add settings for Codec::Deflate by @martin-g in #174
- chore: Bump miniz_oxide from 0.8.7 to 0.8.8 by @dependabot in #175
- chore: Bump bon from 3.5.1 to 3.5.2 by @dependabot in #177
- doc: Update Rustdoc of ser_schema.rs to match with the current struct names by @thynson in #176
- chore: Bump actions/setup-java from 4.7.0 to 4.7.1 by @dependabot in #178
- chore: Bump bon from 3.5.2 to 3.6.0 by @dependabot in #180
- chore: Bump anyhow from 1.0.97 to 1.0.98 by @dependabot in #179
- Fix CI badge in readme by @erikbrinkman in #183
- fix: #181 - Do not error if there is nothing to read by @martin-g in #182
- chore: Bump bon from 3.6.0 to 3.6.1 by @dependabot in #185
- chore: Bump proc-macro2 from 1.0.94 to 1.0.95 by @dependabot in #184
- chore: Bump rand from 0.9.0 to 0.9.1 by @dependabot in #186
- chore: Bump bon from 3.6.1 to 3.6.3 by @dependabot in #187
- chore: Bump ctor from 0.4.1 to 0.4.2 by @dependabot in #188
- chore: Bump syn from 2.0.100 to 2.0.101 by @dependabot in #191
- Support different header types by @masongup-mdsol in #190
- chore(deps): Bump sha2 from 0.10.8 to 0.10.9 by @dependabot in #192
- feat: Expose the capability to do headerless avro encoding with serde by @allenbenz in #193
- perf: Reduce the size of Error from 256 bytes to 88 bytes by @Kriskras99 in #194
- feat: Accept more inputs for
Schema::parse_(str_with)_listby @Kriskras99 in #195 - chore: Fix a bunch of new Clippy lints by @Kriskras99 in #196
- chore(deps): Bump uuid from 1.16.0 to 1.17.0 by @dependabot in #200
- feat: Add
get_refandget_mutmethods toWriterby @Kriskras99 in #201 - fix: flush Writer on drop by @Kriskras99 in #199
New Contributors
- @thynson made their first contribution in #176
- @erikbrinkman made their first contribution in #183
- @masongup-mdsol made their first contribution in #190
- @allenbenz made their first contribution in #193
Full Changelog: rel/release-0.18.0...rel/release-0.19.0
-
0.18.014 Apr 2025Release notes
Open source →What's Changed
- Copy the Github Actions workflows from the main repo by @martin-g in #1
- Bump thiserror from 1.0.63 to 1.0.64 by @dependabot in #3
- Bump actions/setup-java from 4.2.2 to 4.3.0 by @dependabot in #2
- chore: Use
use abcto replaceextern crate abcby @Xuanwo in #7 - chore: Remove unexpected fuzz corpus by @Xuanwo in #6
- chore: Update repository and remove deprecated authors field by @Xuanwo in #5
- Bump actions/setup-java from 4.3.0 to 4.4.0 by @dependabot in #11
- Bump syn from 2.0.77 to 2.0.79 by @dependabot in #13
- Bump rstest from 0.22.0 to 0.23.0 by @dependabot in #12
- AVRO-4063: Call
flushon the innerwriterduringWriter::flushby @snowsignal in #14 - fix: deserializing ignored enum by @xordi in #15
- fix: AVRO-4055: Validate records properly when parsing a schema by @woile in #9
- chore: Bump proc-macro2 from 1.0.86 to 1.0.87 by @dependabot in #16
- chore: Bump wasm-bindgen from 0.2.93 to 0.2.94 by @dependabot in #17
- chore: Bump wasm-bindgen-test from 0.3.43 to 0.3.44 by @dependabot in #19
- chore: Bump wasm-bindgen from 0.2.94 to 0.2.95 by @dependabot in #18
- chore: Bump wasm-bindgen-test from 0.3.44 to 0.3.45 by @dependabot in #23
- chore: Bump uuid from 1.10.0 to 1.11.0 by @dependabot in #24
- chore: Bump proc-macro2 from 1.0.87 to 1.0.88 by @dependabot in #25
- chore: Bump serde_json from 1.0.128 to 1.0.129 by @dependabot in #26
- chore: Bump serde_json from 1.0.129 to 1.0.132 by @dependabot in #29
- chore: Bump syn from 2.0.79 to 2.0.82 by @dependabot in #28
- chore: Bump anyhow from 1.0.89 to 1.0.90 by @dependabot in #27
- chore: Bump anyhow from 1.0.90 to 1.0.91 by @dependabot in #34
- chore: Bump proc-macro2 from 1.0.88 to 1.0.89 by @dependabot in #33
- chore: Bump thiserror from 1.0.64 to 1.0.65 by @dependabot in #31
- chore: Bump syn from 2.0.82 to 2.0.85 by @dependabot in #35
- chore: Bump serde from 1.0.210 to 1.0.213 by @dependabot in #32
- chore: Bump actions/setup-java from 4.4.0 to 4.5.0 by @dependabot in #36
- chore: Bump serde from 1.0.213 to 1.0.214 by @dependabot in #38
- chore: Bump bigdecimal from 0.4.5 to 0.4.6 by @dependabot in #37
- chore: Bump syn from 2.0.85 to 2.0.86 by @dependabot in #39
- chore: Bump thiserror from 1.0.65 to 1.0.66 by @dependabot in #43
- chore: Bump syn from 2.0.86 to 2.0.87 by @dependabot in #42
- chore: Bump anyhow from 1.0.91 to 1.0.92 by @dependabot in #41
- chore: Bump thiserror from 1.0.66 to 1.0.68 by @dependabot in #44
- chore: Bump quad-rand from 0.2.2 to 0.2.3 by @dependabot in #46
- chore: Bump thiserror from 1.0.68 to 2.0.0 by @dependabot in #45
- chore: Bump anyhow from 1.0.92 to 1.0.93 by @dependabot in #47
- Use custom serde serialization and deserialization for avro decimal by @ollis in #48
- chore: Bump serial_test from 3.1.1 to 3.2.0 by @dependabot in #50
- chore: Bump thiserror from 2.0.0 to 2.0.3 by @dependabot in #51
- chore: Bump serde from 1.0.214 to 1.0.215 by @dependabot in #52
- chore: Bump serde_json from 1.0.132 to 1.0.133 by @dependabot in #54
- chore: Bump ctor from 0.2.8 to 0.2.9 by @dependabot in #57
- Issue #53: Add the test to the suite to prevent regressions by @martin-g in #55
- chore: Bump proc-macro2 from 1.0.89 to 1.0.91 by @dependabot in #58
- chore: Bump syn from 2.0.87 to 2.0.89 by @dependabot in #60
- chore: Fix
cargo checkerrors with 1.83.0 (stable) by @martin-g in #65 - chore: Bump syn from 2.0.89 to 2.0.90 by @dependabot in #62
- chore: Bump wasm-bindgen from 0.2.95 to 0.2.97 by @dependabot in #63
- chore: Bump wasm-bindgen-test from 0.3.45 to 0.3.47 by @dependabot in #67
- chore: Bump thiserror from 2.0.3 to 2.0.4 by @dependabot in #69
- chore: Bump anyhow from 1.0.93 to 1.0.94 by @dependabot in #68
- Issue #71 - Use
serial_testfor the test from issue #53 by @martin-g in #72 - chore: Bump thiserror from 2.0.4 to 2.0.6 by @dependabot in #74
- chore: Bump bigdecimal from 0.4.6 to 0.4.7 by @dependabot in #75
- chore: Bump serde from 1.0.215 to 1.0.216 by @dependabot in #76
- chore: Bump bzip2 from 0.4.4 to 0.5.0 by @dependabot in #77
- chore: Bump proptest from 1.5.0 to 1.6.0 by @dependabot in #78
- chore: Bump thiserror from 2.0.6 to 2.0.7 by @dependabot in #79
- chore: Bump thiserror from 2.0.7 to 2.0.8 by @dependabot in #80
- chore: Bump actions/setup-java from 4.5.0 to 4.6.0 by @dependabot in #81
- chore: Bump syn from 2.0.90 to 2.0.91 by @dependabot in #86
- chore: Bump env_logger from 0.11.5 to 0.11.6 by @dependabot in #82
- chore: Bump thiserror from 2.0.8 to 2.0.9 by @dependabot in #84
- chore: Bump anyhow from 1.0.94 to 1.0.95 by @dependabot in #85
- chore: Bump serde_json from 1.0.133 to 1.0.134 by @dependabot in #83
- chore: Bump syn from 2.0.91 to 2.0.92 by @dependabot in #88
- chore: Bump quote from 1.0.37 to 1.0.38 by @dependabot in #87
- chore: Bump serde from 1.0.216 to 1.0.217 by @dependabot in #89
- chore: Bump syn from 2.0.92 to 2.0.93 by @dependabot in #90
- chore: Bump thiserror from 2.0.9 to 2.0.10 by @dependabot in #97
- chore: Bump uuid from 1.11.0 to 1.11.1 by @dependabot in #95
- chore: Bump rstest from 0.23.0 to 0.24.0 by @dependabot in #92
- chore: Bump syn from 2.0.93 to 2.0.96 by @dependabot in #96
- chore: Bump serde_json from 1.0.134 to 1.0.135 by @dependabot in #94
- chore: Bump wasm-bindgen-test from 0.3.49 to 0.3.50 by @dependabot in #100
- chore: Bump proc-macro2 from 1.0.92 to 1.0.93 by @dependabot in #99
- chore: Bump thiserror from 2.0.10 to 2.0.11 by @dependabot in #98
- chore: Bump uuid from 1.11.1 to 1.12.0 by @dependabot in #101
- chore: Bump log from 0.4.22 to 0.4.25 by @dependabot in #102
- Add method
Schema::parse_str_with_listto parse root schemas with references by @rayokota in #104 - Minor enhancement to
parse_str_with_listby @rayokota in #105 - Add a "from" datum reader that can take reader schemata by @rayokota in #106
- chore: Bump serde_json from 1.0.135 to 1.0.137 by @dependabot in #107
- Added Schema::independent_canonical_form by @chupaty in #66
- chore: Use the Github hosted Linux ARM64 runners by @martin-g in #109
- chore: Bump uuid from 1.12.0 to 1.12.1 by @dependabot in #110
- feat: Use builder pattern for creating RecordSchema, EnumSchema, FixedSchema and RecordField by @martin-g in #108
- chore: Bump rand from 0.8.5 to 0.9.0 by @dependabot in #111
- chore: Bump serde_json from 1.0.137 to 1.0.138 by @dependabot in #112
- chore: Bump actions/setup-java from 4.6.0 to 4.7.0 by @dependabot in #113
- chore: Bump syn from 2.0.96 to 2.0.98 by @dependabot in #114
- chore: Bump uuid from 1.12.1 to 1.13.0 by @dependabot in #115
- chore: Bump uuid from 1.13.0 to 1.13.1 by @dependabot in #116
- chore: Bump strum from 0.26.3 to 0.27.0 by @dependabot in #117
- chore: Bump strum_macros from 0.26.4 to 0.27.0 by @dependabot in #118
- chore: Bump ctor from 0.2.9 to 0.3.0 by @dependabot in #119
- chore: Bump bzip2 from 0.5.0 to 0.5.1 by @dependabot in #120
- chore: Bump ctor from 0.3.0 to 0.3.1 by @dependabot in #121
- chore: Bump ctor from 0.3.1 to 0.3.4 by @dependabot in #124
- chore: Bump strum from 0.27.0 to 0.27.1 by @dependabot in #125
- chore: Bump strum_macros from 0.27.0 to 0.27.1 by @dependabot in #123
- chore: Bump uuid from 1.13.1 to 1.13.2 by @dependabot in #126
- chore: Bump serde_json from 1.0.138 to 1.0.139 by @dependabot in #128
- chore: Bump anyhow from 1.0.95 to 1.0.96 by @dependabot in #127
- chore: Bump ctor from 0.3.4 to 0.3.6 by @dependabot in #129
- chore: Bump serde from 1.0.217 to 1.0.218 by @dependabot in #133
- chore: Bump zstd from 0.13.2 to 0.13.3 by @dependabot in #131
- chore: Bump uuid from 1.13.2 to 1.14.0 by @dependabot in #132
- feat: Add
Record::get(str)- getter for record fields by @splix in #130 - chore: Bump log from 0.4.25 to 0.4.26 by @dependabot in #135
- chore: Bump uuid from 1.14.0 to 1.15.1 by @dependabot in #137
- chore: Bump thiserror from 2.0.11 to 2.0.12 by @dependabot in #142
- chore: Bump rstest from 0.24.0 to 0.25.0 by @dependabot in #141
- chore: Bump bzip2 from 0.5.1 to 0.5.2 by @dependabot in #140
- chore: Bump quote from 1.0.38 to 1.0.39 by @dependabot in #149
- chore: Bump syn from 2.0.98 to 2.0.99 by @dependabot in #148
- chore: Bump serde_bytes from 0.11.15 to 0.11.16 by @dependabot in #147
- chore: Bump bon from 3.3.2 to 3.4.0 by @dependabot in #146
- chore: Bump anyhow from 1.0.96 to 1.0.97 by @dependabot in #143
- chore: Bump proc-macro2 from 1.0.93 to 1.0.94 by
Note truncated.
-
0.17.005 Aug 2024Nothing published for this version
-
0.16.026 Sep 2023Nothing published for this version
-
0.15.010 Jul 2023Nothing published for this version
-
0.14.003 Aug 2022Nothing published for this version
-
0.0.131 Jan 2022Nothing published for this version