Skip to main content

Fast read/write of AVRO files

Project description

# 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

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

# Changes

See the [ChangeLog]

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

# Contact

[Project Home](https://github.com/tebeka/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.19.6.tar.gz (503.7 kB view details)

Uploaded Source

Built Distributions

fastavro-0.19.6-cp36-cp36m-win_amd64.whl (308.0 kB view details)

Uploaded CPython 3.6m Windows x86-64

fastavro-0.19.6-cp36-cp36m-manylinux1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.6m

fastavro-0.19.6-cp35-cp35m-win_amd64.whl (300.4 kB view details)

Uploaded CPython 3.5m Windows x86-64

fastavro-0.19.6-cp35-cp35m-manylinux1_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.5m

fastavro-0.19.6-cp34-cp34m-manylinux1_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.4m

fastavro-0.19.6-cp27-cp27m-win_amd64.whl (305.0 kB view details)

Uploaded CPython 2.7m Windows x86-64

fastavro-0.19.6-cp27-cp27m-manylinux1_x86_64.whl (1.2 MB view details)

Uploaded CPython 2.7m

File details

Details for the file fastavro-0.19.6.tar.gz.

File metadata

  • Download URL: fastavro-0.19.6.tar.gz
  • Upload date:
  • Size: 503.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for fastavro-0.19.6.tar.gz
Algorithm Hash digest
SHA256 d6457b40b7c2c1f5f8b5e0922437c6cad49d10e16a6f96f87150b802e098d9e5
MD5 81c7136637f16ad27b9ecb9d83255997
BLAKE2b-256 7905a62f1f0f77fa6099bc3864c069c7cb566cfb91684e8622b10637ca7a0efe

See more details on using hashes here.

File details

Details for the file fastavro-0.19.6-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for fastavro-0.19.6-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 f94701d72b497e03d7ac7c423934ea229d34bae582c64504a404a614537e92b9
MD5 e0b66f727fa70c603e870dc6210592b7
BLAKE2b-256 1078c7d67a1ba62fcd6f7b7f18fd4e531605aebf01a6217835836e9bb4e1e7d8

See more details on using hashes here.

File details

Details for the file fastavro-0.19.6-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.19.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b08810fc45017a67cca04c14da83495390ff30e27ac4aa23e8e31fca6e705613
MD5 58c53cbf6f053a31c32b970b71be4e97
BLAKE2b-256 15029328260ac43e332f63cfc36405d89320e142b1f5154214a495be1461fca3

See more details on using hashes here.

File details

Details for the file fastavro-0.19.6-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for fastavro-0.19.6-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 72cd1cedaa7225b6b18a366f1eae89593c85d81818a875436fb4c7721b9e278f
MD5 4c8f3e300af79fa26334ea281d1f1892
BLAKE2b-256 7f857616d53b558a87d5386d4f5b653e1e2df2b877321efc93da1c51271bc242

See more details on using hashes here.

File details

Details for the file fastavro-0.19.6-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.19.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8359901eb05d09c97ec7e1894a9467f9762611671e896f1f5fcd365f5e430afa
MD5 6339930f75994e42a958762a313994d8
BLAKE2b-256 65a7e97442f42a21b5ad55a2c96aa2f6ad710a8b450803f5523120463554fbd5

See more details on using hashes here.

File details

Details for the file fastavro-0.19.6-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.19.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b10ba2257d7c20afb85f5d8cc432703d7eda3d4f129f453875061f13ad08504c
MD5 471c89f8ad4bd59ec5b457c904e1c12e
BLAKE2b-256 626ad42d1d47fe8a17fcd778bd6103382f1b5171e891d147dd41225c34f53e0d

See more details on using hashes here.

File details

Details for the file fastavro-0.19.6-cp27-cp27m-win_amd64.whl.

File metadata

File hashes

Hashes for fastavro-0.19.6-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 bd21cfeef899d9d5442fcde7fef7e712f2bfa11ad32b0736f93a5d3e8d9dab36
MD5 6cb2433a86a6fbb0607e8ae89964bc1e
BLAKE2b-256 f4d0ecaefee49e7df67c6e932ca2d2e44e45f65fa663a3af8ae89c12db8ed309

See more details on using hashes here.

File details

Details for the file fastavro-0.19.6-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastavro-0.19.6-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b06155801d8ba317c26d9fdc361256751fc74af01f02865851f91f826c206bb5
MD5 6a6c1fafad07d269bbc0e06dafc73cc2
BLAKE2b-256 e551f8d4ed3f9be91114dfda93d9193723b1993e5b6e005713f5f849263690a6

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