Skip to content

Latest commit

 

History

History
93 lines (66 loc) · 4.47 KB

File metadata and controls

93 lines (66 loc) · 4.47 KB

apache-avro

Latest Version Rust Continuous Integration Latest Documentation Apache License 2.0

rust continuous integration rust clippy check rust security audit

A library for working with Apache Avro in Rust.

Please check our documentation for examples, tutorials and API reference.

Apache Avro is a data serialization system which provides rich data structures and a compact, fast, binary data format. If you are not familiar with the data format, please read [documentation::primer] first.

There are two ways of working with Avro data in this crate:

  1. Via the generic Value type.
  2. Via types implementing [AvroSchema] and Serde's Serialize and Deserialize.

The first option is great for dealing with Avro data in a dynamic way. For example, when working with unknown or rapidly changing schemas or when you don't want or need to map to Rust types. The module documentation of [documentation::dynamic] explains how to work in this dynamic way.

The second option is great when dealing with static schemas that should be decoded to and encoded from Rust types. The module documentation of [serde] explains how to work in this static way.

Features

  • derive: enable support for deriving [AvroSchema]
  • snappy: enable support for the Snappy codec
  • zstandard: enable support for the Zstandard codec
  • bzip: enable support for the Bzip2 codec
  • xz: enable support for the Xz codec

MSRV

The current MSRV is 1.88.0.

The MSRV may be bumped in minor releases.

License

This project is licensed under Apache License 2.0.

Contributing

Everyone is encouraged to contribute! You can contribute by forking the GitHub repo and making a pull request or opening an issue. All contributions will be licensed under Apache License 2.0.

Please consider adding documentation and tests! If you introduce a backward-incompatible change, please consider adding instruction to migrate in the Migration Guide If you modify the crate documentation in lib.rs, run make readme to sync the README file.