This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.


Apache Avro project is a member of the Apache Software Foundation!

1 - Download


Releases may be downloaded from Apache mirrors: Download

The latest release is: Avro 1.11.1 (3.4M, source, pgp, sha512)

Release Notes

Release notes for Avro releases are available in Jira

##Verifying a release It is essential that you verify the integrity of the downloaded files using the PGP signatures or SHA512 checksums. Please read How to verify downloaded files for more information on why you should verify our releases.

The PGP signatures can be verified using PGP or GPG. First download the KEYS file as well as the .asc signature files for the relevant release packages. Make sure you get these files from the main distribution directory, rather than from a mirror. Then verify the signatures using:

% gpg --import KEYS
% gpg --verify downloaded_file.asc downloaded_file


% pgpk -a KEYS
% pgpv downloaded_file.asc


% pgp -ka KEYS
% pgp downloaded_file.asc

Alternatively, you can verify the hash on the file.

Hashes can be calculated using GPG:

% gpg --print-md SHA256 downloaded_file

The output should be compared with the contents of the SHA256 file. Similarly for other hashes (SHA512, SHA1, MD5 etc) which may be provided.

Windows 7 and later systems should all now have certUtil:

% certUtil -hashfile pathToFileToCheck

HashAlgorithm choices: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

Unix-like systems (and macOS) will have a utility called md5, md5sum or shasum.

2 - Credits

Apache Avro credits


Apache Avro’s active committers are:

blueRyan BlueNetflixspec, java, ruby-8
brucemBruce MitchenerArmy of Brucec+7
busbeySean BusbeyClouderajava, ruby-6
cuttingDoug CuttingClouderaspec, java-8
dcreagerDouglas CreagerRedJack, LLCc-5
hammerJeff HammerbacherClouderapython-8
iemejiaIsmaël MejíaTalendjava, docker+1
kojiromikeMichael A. SmithIndependentpython, docker-5
massieMatt MassieUC Berkeleyc-8
martinklMartin KleppmannUniversity of Cambridgec, ruby0
nielsbasjesNiels BasjesBol.comjava, docker+1
philzPhilip ZeyligerClouderajava-8
rskrabaRyan SkrabaTalendjava, docker+1
sbanachoScott BanachowskiMicrosoftc++-8
scottcareyScott CareyRichRelevancejava-8
sekiknKengo SekiNTT Dataperl, interoperability+9
sharadagSharad AgarwalInMobipython+5.5
thiruThiruvalluvan M. G.VertiCloudjava+5.5
tomwhiteTom WhiteClouderajava0


A list of Avro contributors and their contributions is available from Jira


Contributors who are no longer active on Avro are:

  • None

3 - How to contribute

Getting the source code

First of all, you need the Avro source code.

The easiest way is to clone or fork the GitHub mirror:

git clone -o github

Making Changes

Before you start, file an issue in JIRA or discuss your ideas on the Avro developer mailing list. Describe your proposed changes and check that they fit in with what others are doing and have planned for the project. Be patient, it may take folks a while to understand your requirements.

Modify the source code and add some (very) nice features using your favorite IDE.

But take care about the following points

All Languages

  • Contributions should pass existing unit tests.
  • Contributions should document public facing APIs.
  • Contributions should add new tests to demonstrate bug fixes or test new features.


  • All public classes and methods should have informative Javadoc comments.
  • Do not use @author tags.
  • Java code should be formatted according to Oracle’s conventions, with one exception:
    • Indent two spaces per level, not four.
  • JUnit is our test framework:
  • You must implement a class whose class name starts with Test.
  • Define methods within your class and tag them with the @Test annotation. Call JUnit’s many assert methods to verify conditions; these methods will be executed when you run mvn test.
  • By default, do not let tests write any temporary files to /tmp. Instead, the tests should write to the location specified by the test.dir system property.
  • Place your class in the src/test/java/ tree.
  • You can run all the unit tests with the command mvn test, or you can run a specific unit test with the command mvn -Dtest=<class name, fully qualified or short name> test (for example mvn -Dtest=TestFoo test)

Code Style (Autoformatting)

For Java code we use Spotless to format the code to comply with Avro’s code style conventions (see above). Automatic formatting relies on Avro’s Eclipse JDT formatter definition. You can use the same definition to auto format from Eclipse or from IntelliJ configuring the Eclipse formatter plugin.

If you use maven code styles issues are checked at the compile phase. If your code breaks because of bad formatting, you can format it automatically by running the command:

mvn spotless:apply

Unit Tests

Please make sure that all unit tests succeed before constructing your patch and that no new compiler warnings are introduced by your patch. Each language has its own directory and test process.

cd avro-trunk/lang/java
mvn clean test
cd avro-trunk/lang/py
./ build test
cd avro-trunk/lang/rust
./ clean test
cd avro-trunk/lang/csharp
./ clean test
cd avro-trunk/lang/c
./ clean
./ test
cd avro-trunk/lang/c++
./ clean test
cd avro-trunk/lang/ruby
gem install echoe
rake clean test
cd avro-trunk/lang/php
./ clean
./ test

Contributing your code

Contribution can be made directly via github with a Pull Request, or via a patch.

Via Github

Method is to create a pull request.

On your fork, create a branch named with JIRA (avro-1234_fixNpe for example) On source, go to it

git pull
git switch avro-1234_fixNpe

code your changes (following preceding recommendations)

check and add updated sources

git status

# Add any new or changed files with:
git add src/.../
git add src/.../

Finally, create a commit with your changes and a good log message, and push it:

git commit -m "AVRO-1234: Fix NPE by adding check to ..."
git push

On your github fork site, a button will propose you to build the Pull Request. Click on it, fill Conversation form, and create it. Link this PR to the corresponding JIRA ticket (on JIRA ticket, add PR to “Issue Links” chapter, and add label ‘pull-request-available’ to it .

Jira Guidelines

Please comment on issues in Jira, making your concerns known. Please also vote for issues that are a high priority for you.

Please refrain from editing descriptions and comments if possible, as edits spam the mailing list and clutter Jira’s “All” display, which is otherwise very useful. Instead, preview descriptions and comments using the preview button (on the right) before posting them. Keep descriptions brief and save more elaborate proposals for comments, since descriptions are included in Jira’s automatically sent messages. If you change your mind, note this in a new comment, rather than editing an older comment. The issue should preserve this history of the discussion.

Stay involved

Contributors should join the Avro mailing lists. In particular, the commit list (to see changes as they are made), the dev list (to join discussions of changes) and the user list (to help others).

See Also

4 - License

Apache Avro project is licensed under Apache Software License 2.0

5 - Privacy policy

Apache Avro project shares the same privacy policy as the Apache Software Foundation

6 - Security

Apache Avro project shares the same security policy as the Apache Software Foundation

7 - Events

Apache Avro members often participate in events organized by the Apache Software Foundation

8 - Donate

If you would like to donate please see the Apache Software Foundation donation program

9 - Thanks

Apache Avro project could not exist without the continued generous support from the community! We would like to take this opportunity to thank the ASF Sponsors.