Skip to main content

# fastavro [![Build Status](https://travis-ci.org/tebeka/fastavro.svg?branch=master)](https://travis-ci.org/tebeka/fastavro) [![Documentation Status](https://readthedocs.org/projects/fastavro/badge/?version=latest)](http://fastavro.readthedocs.io/en/latest/?badge=latest)

Because the Apache Python avro package is written in pure Python, it is relatively slow. In one test case, it takes about 14 seconds to iterate through a file of 10,000 records. By comparison, the JAVA avro SDK reads the same file in 1.9 seconds.

The fastavro library was written to offer performance comparable to the Java library. With regular CPython, fastavro uses C extensions which allow it to iterate the same 10,000 record file in 1.7 seconds. With PyPy, this drops to 1.5 seconds (to be fair, the JAVA benchmark is doing some extra JSON encoding/decoding).

fastavro supports the following Python versions:

  • Python 2.7

  • Python 3.4

  • Python 3.5

  • Python 3.6

  • PyPy

  • PyPy3

[Cython]: http://cython.org/

# Documentation

Documentation is available at http://fastavro.readthedocs.io/en/latest/

# Installing fastavro is available both on [PyPi](http://pypi.python.org/pypi)

pip install fastavro

and on [conda-forge](https://conda-forge.github.io) conda channel.

conda install -c conda-forge fastavro

# Contributing

  • Bugs and new feature requests typically start as github issues where they can be discussed. I try to resolve these as time affords, but PRs are welcome from all.

  • Get approval from discussing on the github issue before opening the pull request

  • Tests must be passing for pull request to be considered

# Hacking

As recommended by Cython, the C files output is distributed. This has the advantage that the end user does not need to have Cython installed. However it means that every time you change fastavro you need to run make.

### Releasing

We release both to [pypi][pypi] and to [conda-forge][conda-forge].

We assume you have [twine][twine] installed and that you’ve created your own fork of [fastavro-feedstock][feedstock].

  • Make sure the tests pass

  • Run make tag

  • Copy the windows build artifacts for the new version from https://ci.appveyor.com/project/scottbelden/fastavro to the dist folder

  • Copy the linux build artifacts for the new version from https://github.com/tebeka/fastavro/releases/tag/ to the dist folder

  • Run make publish

  • Note the sha signature emitted at the above

  • Switch to feedstock directory and edit recipe/meta.yaml
    • Update version and sha256 variables at the top of the file

    • Run python recipe/test_recipe.py

    • Submit a [PR][pr]

[conda-forge]: https://conda-forge.org/ [feedstock]: https://github.com/conda-forge/fastavro-feedstock [pr]: https://conda-forge.org/#update_recipe [pypi]: https://pypi.python.org/pypi [twine]: https://pypi.python.org/pypi/twine

# Changes

See the [ChangeLog]

[ChangeLog]: https://github.com/tebeka/fastavro/blob/master/ChangeLog

# Contact

[Project Home](https://github.com/tebeka/fastavro)

Release files for fastavro 0.18.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastavro 0.18.2
File Size Uploaded
fastavro-0.18.2.tar.gz 448.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for fastavro 0.18.2
File
fastavro-0.18.2-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
fastavro-0.18.2-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details
fastavro-0.18.2-cp35-cp35m-win_amd64.whl CPython 3.5 CPython 3.5 pymalloc Windows x86-64 Details
fastavro-0.18.2-cp35-cp35m-manylinux1_x86_64.whl CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64 Details
fastavro-0.18.2-cp34-cp34m-manylinux1_x86_64.whl CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64 Details
fastavro-0.18.2-cp27-cp27m-win_amd64.whl CPython 2.7 CPython 2.7 pymalloc Windows x86-64 Details
fastavro-0.18.2-cp27-cp27m-manylinux1_x86_64.whl CPython 2.7 CPython 2.7 pymalloc Linux glibc 2.5+ x86-64 Details

Total release size: 6.1 MB

Release files / fastavro-0.18.2.tar.gz

Download URL fastavro-0.18.2.tar.gz
Size 448.6 kB
Tags Source
SHA-256 checksum
How to use checksums
566dfbd63ba566fbebe2ea7ecfd63663fe27d958616f107d253e381efe05f03c
BLAKE2b-256 checksum
How to use checksums
7b240f774a39422330023a288d108fca9f1664f161e324fe26e431fc5b2efb6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / fastavro-0.18.2-cp36-cp36m-win_amd64.whl

Download URL fastavro-0.18.2-cp36-cp36m-win_amd64.whl
Size 279.1 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
733dbbb1ccf889c75d0d56953e18350085f4eae384023e36857358d8ec9d3048
BLAKE2b-256 checksum
How to use checksums
6cd21c0c9434cc036db11f20a945b47ba178ae8e4ee80a9337e8ea619334d760
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / fastavro-0.18.2-cp36-cp36m-manylinux1_x86_64.whl

Download URL fastavro-0.18.2-cp36-cp36m-manylinux1_x86_64.whl
Size 1.3 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
1be6e9b87eaefea1a955c0ea0640bdd88e4366da151bde1c81c07465402d8d93
BLAKE2b-256 checksum
How to use checksums
52b03c503af29c4f8e337e8a86c98e66b93f55a9ef941a7888acadbab7ae5a02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / fastavro-0.18.2-cp35-cp35m-win_amd64.whl

Download URL fastavro-0.18.2-cp35-cp35m-win_amd64.whl
Size 271.8 kB
Tags CPython 3.5 CPython 3.5 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
4f768520f81ea49ba296373fcd53d5b8da74006ff80e72c1fb65e2c9726944f4
BLAKE2b-256 checksum
How to use checksums
c24f7f5cd468a776050c70b6055ec5806384596ab84523325d43922a540c1cc7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / fastavro-0.18.2-cp35-cp35m-manylinux1_x86_64.whl

Download URL fastavro-0.18.2-cp35-cp35m-manylinux1_x86_64.whl
Size 1.2 MB
Tags CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
ba0f4a9f0d47472aa21cbbc1aee11262b4e3fa0a32ad221a160d4f86b469a303
BLAKE2b-256 checksum
How to use checksums
bb9bcc900ed710bd88bb29c2cfd02fa2e235347b3247dc16c1ac35041eb6d83f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / fastavro-0.18.2-cp34-cp34m-manylinux1_x86_64.whl

Download URL fastavro-0.18.2-cp34-cp34m-manylinux1_x86_64.whl
Size 1.2 MB
Tags CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
a2937730063ca45f23e2a4de3dd159680167fef92f7114827c24e9e02ea22b9e
BLAKE2b-256 checksum
How to use checksums
a2b311b1d06f5dd8a7bc0744ff45af5ffccd89c7e6b07a58c03abd6b8f318a82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / fastavro-0.18.2-cp27-cp27m-win_amd64.whl

Download URL fastavro-0.18.2-cp27-cp27m-win_amd64.whl
Size 277.1 kB
Tags CPython 2.7 CPython 2.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
7623fa1cc56ba85e93832dcadbdc0f9a3f73a4456a7d2a0ae326068f493db975
BLAKE2b-256 checksum
How to use checksums
de10f48b1ab9433617cb8d48a3df7c3888cc5d38d88218318eafbfd55b8bde0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / fastavro-0.18.2-cp27-cp27m-manylinux1_x86_64.whl

Download URL fastavro-0.18.2-cp27-cp27m-manylinux1_x86_64.whl
Size 1.1 MB
Tags CPython 2.7 CPython 2.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
c10b47a7bfc63ceb87d21f1612d4677cb9f27afcc66330a80cd4a4c46b7b4cd7
BLAKE2b-256 checksum
How to use checksums
7faf2af79bd8263d0dc30998523de3321eabbd57a67f657c4f097df26bd8c442
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.11.0

1 release file

1.9.4

31 release files

1.9.2

31 release files

1.9.0

31 release files

1.8.2

25 release files

1.8.1

25 release files

1.7.2

21 release files

1.7.1

21 release files

1.7.0

21 release files

1.6.0

17 release files

1.5.4

17 release files

1.5.3

17 release files

1.5.2

17 release files

1.4.8

15 release files

1.4.7

20 release files

1.4.6

17 release files

1.4.5

17 release files

1.4.4

17 release files

1.4.3

17 release files

1.4.2

13 release files

1.4.1

14 release files

1.4.0

14 release files

1.3.5

14 release files

1.3.4

14 release files

1.3.3

14 release files

1.3.2

16 release files

1.3.0

15 release files

1.2.4

15 release files

1.2.3

16 release files

1.2.2

16 release files

1.2.0

16 release files

1.1.1

16 release files

1.1.0

13 release files

1.0.0

17 release files

0.19.9

8 release files

0.19.8

8 release files

0.19.7

8 release files

0.19.6

8 release files

0.19.5

8 release files

0.19.4

8 release files

0.19.3

8 release files

0.19.2

8 release files

0.19.1

8 release files

0.19.0

8 release files

This release

0.18.2 This release

8 release files

0.18.0

8 release files

0.17.8

4 release files

0.17.5

6 release files

0.17.4

4 release files

0.17.3

4 release files

0.17.2

1 release file

0.17.1

1 release file

0.17.0

1 release file

0.16.7

1 release file

0.16.6

1 release file

0.16.5

1 release file

0.16.4

1 release file

0.16.3

1 release file

0.16.1

1 release file

0.14.10

1 release file

0.14.9

1 release file

0.14.8

1 release file

0.14.7

1 release file

0.14.6

1 release file

0.14.5

1 release file

0.14.3

1 release file

0.14.2

1 release file

0.14.1

1 release file

0.14.0

1 release file

0.13.0

1 release file

0.12.2

1 release file

0.12.1

1 release file

0.11.1

3 release files

0.11.0

2 release files

0.9.11

3 release files

0.9.9

3 release files

0.9.8

3 release files

0.9.7

3 release files

0.9.6

3 release files

0.9.5

3 release files

0.9.4

3 release files

0.9.3

3 release files

0.9.2

3 release files

0.9.1

3 release files

0.9.0

3 release files

0.8.8

3 release files

0.8.7

3 release files

0.8.6

3 release files

0.8.5

3 release files

0.8.4

3 release files

0.8.3

3 release files

0.8.2

3 release files

0.8.1

3 release files

0.8.0

3 release files

0.7.10

3 release files

0.7.9

3 release files

0.7.8

3 release files

0.7.7

3 release files

0.7.6

3 release files

0.7.5

3 release files

0.7.4

3 release files

0.7.3

2 release files

0.7.2

4 release files

0.7.1

4 release files

0.7.0

4 release files

0.6.9

3 release files

0.6.8

3 release files

0.6.7

3 release files

0.6.6

3 release files

0.6.5

3 release files

0.6.4

3 release files

0.6.3

3 release files

0.6.2

3 release files

0.6.1

3 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page