Skip to main content

Fast read/write of AVRO files

Project description

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

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

  • Python 3.7

  • 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

Developer requirements can be installed with pip install -r developer_requirements.txt. If those are installed, you can run the tests with ./run-tests.sh. If you have trouble installing those dependencies, you can run docker build . to run the tests inside a docker container. This won’t test on all versions of python or on pypy, so it’s possible to still get CI failures after making a pull request, but we can work through those errors if/when they happen.

### 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/fastavro/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-hypernode.com/pypi [twine]: https://pypi-hypernode.com/pypi/twine

# Changes

See the [ChangeLog]

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

# Contact

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

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastavro-0.21.0rc1.tar.gz (448.6 kB view details)

Uploaded Source

Built Distributions

fastavro-0.21.0rc1-cp37-cp37m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.7m

fastavro-0.21.0rc1-cp36-cp36m-win_amd64.whl (279.6 kB view details)

Uploaded CPython 3.6m Windows x86-64

fastavro-0.21.0rc1-cp36-cp36m-manylinux1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6m

fastavro-0.21.0rc1-cp35-cp35m-win_amd64.whl (272.3 kB view details)

Uploaded CPython 3.5m Windows x86-64

fastavro-0.21.0rc1-cp35-cp35m-manylinux1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.5m

fastavro-0.21.0rc1-cp34-cp34m-manylinux1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.4m

fastavro-0.21.0rc1-cp27-cp27m-win_amd64.whl (275.1 kB view details)

Uploaded CPython 2.7m Windows x86-64

fastavro-0.21.0rc1-cp27-cp27m-manylinux1_x86_64.whl (1.0 MB view details)

Uploaded CPython 2.7m

File details

Details for the file fastavro-0.21.0rc1.tar.gz.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1.tar.gz
Algorithm Hash digest
SHA256 2410a655d81b8b82542a59136f4da2929095467b79f23e864ee76efb6ff8ac3b
MD5 c28fcde1c79c5c9a859f0045fac9237f
BLAKE2b-256 e2210f1712de5b77922e2a949f378bff5bb3102ec00d2f9d6b625eb894ac1bb0

See more details on using hashes here.

File details

Details for the file fastavro-0.21.0rc1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b72dd4cd7a6b004b792620a4701ac765033b64cabb02bfe4183b1c8c09f4e87f
MD5 246242381b87939965b58261c49f345e
BLAKE2b-256 58ba6a823ac0286bb9560c0fd697e8ec29b0f82ae7c1f8ebb12497ce0a9e341a

See more details on using hashes here.

File details

Details for the file fastavro-0.21.0rc1-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 8ce1cb126a93f08d214b610b6e752deb6d4f240e31556bdee2684c0f2d9eee5c
MD5 9ef9cb645dbc2182cb5af958a8ca03ba
BLAKE2b-256 e82e09b7e74f4aab033f4060efd605b45f2fd95225f58d1865c32de70c05d618

See more details on using hashes here.

File details

Details for the file fastavro-0.21.0rc1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c523fc9aad2bbbb757fad44c7702ec7b037070e3f6eba17b1daf1b989e92e8a3
MD5 33d7a8a546815c1451b009136621aecc
BLAKE2b-256 6110b776de7184d3756352f8a14d77d90f9d146d28cb43806578723184f01702

See more details on using hashes here.

File details

Details for the file fastavro-0.21.0rc1-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 521ae1f43bf6afe9dc6819cc1403c7b6cfff933d1ef5b311f6ff8392de0b35fb
MD5 0efeb129530b39288ced36062c1a5934
BLAKE2b-256 3b7c2bd396a06649f357ca6e4f03c38074cbd8d0c4c6e1f9d38ce511850de40b

See more details on using hashes here.

File details

Details for the file fastavro-0.21.0rc1-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 cdfd77e41ea379111fcfb107ae88bb01b270c2458604ea13ee2c125aa9f2f88e
MD5 94460c0bb1b44617dc8f02246e482d8a
BLAKE2b-256 71d2720b15b1d04d897c8ea9f51c8ad11b491596b23ad3daa0bdab6ff83c56f4

See more details on using hashes here.

File details

Details for the file fastavro-0.21.0rc1-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 de72a3921baa28d60b2601ebbbabc342505906a96b9465deac3424b748249c86
MD5 77b8334aacb9ed1cc55dd1812f244b65
BLAKE2b-256 367cf1b6e6270a4f7c139f366e372e48c590d1decc668d500321e3c8b6e54df6

See more details on using hashes here.

File details

Details for the file fastavro-0.21.0rc1-cp27-cp27m-win_amd64.whl.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 dca905945e49556997ae4fa2685f05b399169c18751a9a9b1e62d5f5129d792e
MD5 d8adfa5de994ae57174880d0a2bdc25c
BLAKE2b-256 79e733df5e56e3da694c05bf28a3b040f4ddc0cd2c67a796b243fc8e6ba4de4f

See more details on using hashes here.

File details

Details for the file fastavro-0.21.0rc1-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.21.0rc1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 05ccf75c63500fec25eb246b6463a577e9851e589ab6dece1820e79e8ba5b23f
MD5 f689c29000e2e15086088c517dda3e39
BLAKE2b-256 8681ba88906fae16dfbf4b1ba6ed131cf4197ef13406e63d5a92b3bad0d32f15

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page