快速读写avro文件

fastavro的Python项目详细描述


#法斯塔夫罗 [![生成状态](https://travis-ci.org/fastavro/fastavro.svg?branch=master)](https://travis-ci.org/fastavro/fastavro) [![文档状态](https://readthedocs.org/projects/fastavro/badge/?version=latest)](http://fastavro.readthedocs.io/en/latest/?徽章=最新) [![codecov](https://codecov.io/gh/fastavro/fastavro/branch/master/graph/badge.svg)](https://codecov.io/gh/fastavro/fastavro

因为apache pythonavro包是用纯python编写的,所以 相对缓慢。在一个测试用例中,迭代大约需要14秒 有10000条记录的档案。相比之下,javaavrosdk在 1.9秒。

fastavro库的编写目的是提供与java相当的性能 图书馆。对于常规的cpython,fastavro使用c扩展,允许它 在1.7秒内重复相同的10000个记录文件。用pypy,这个下降到1.5 秒(公平地说,java基准测试正在做一些额外的json 编码/解码)。

fastavro支持以下python版本:

  • python 2.7版
  • Python3.5
  • python 3.6
  • Python3.7
  • 皮比
  • PYPY3

##支持的功能

  • 文件编写器
  • 文件读取器(通过记录或块迭代)
  • 无模式作家
  • 无模式读取器
  • JSON编写器
  • json阅读器
  • 编解码器(snappy、deflate、zstandard、bzip2)
  • 模式解析
  • 别名
  • 逻辑类型

##缺少功能

  • 任何涉及avro的rpc功能的内容
  • 将模式解析为规范形式
  • 模式指纹识别

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

#文档

文档可在http://fastavro.readthedocs.io/en/latest/

#安装 fastavro在[pypi](http://pypi.python.org/pypi)上都可用

pip install fastavro

在[conda forge](https://conda-forge.github.ioconda频道。

conda install -c conda-forge fastavro

#贡献

  • bug和新特性请求通常以github问题开始,在这里可以讨论它们。我试图在时间允许的情况下解决这些问题,但所有人都欢迎减贫战略。
  • 在打开拉取请求之前,先获得对github问题讨论的批准
  • 必须通过测试才能考虑拉取请求

开发者需求可以通过pip install-r developer_requirements.txt安装。 如果安装了这些程序,则可以使用/run tests.sh运行测试。如果你有麻烦 安装这些依赖项后,您可以运行Docker Build。运行内部测试 码头集装箱。这不会在所有版本的python或pypy上进行测试,因此有可能 在发出拉取请求后仍然会得到ci失败,但我们可以解决这些错误 如果/当它们发生时。

###释放

我们同时向[PYPI][PYPI]和[Conda Forge][Conda Forge]发布。

我们假设您已经安装了[绳线][绳线],并且您已经创建了自己的 [Fastavro原料][原料]叉。

[康达锻造]:https://conda-forge.org/ [原料]:https://github.com/conda-forge/fastavro-feedstock [公关]:https://conda-forge.org/#update_recipe [pypi]:https://pypi.python.org/pypi [绳线]:https://pypi.python.org/pypi/twine

#更改

请参阅[ChangeLog]

[变更日志]:https://github.com/fastavro/fastavro/blob/master/ChangeLog

#联系人

[项目主页](https://github.com/fastavro/fastavro

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何处理CannotCreateTransactionException   安卓如何通过TensorFlowEnferenceInterface提供布尔占位符。JAVA   java是一个系统。出来默认情况下println线程安全?   java关于同步的重要性   java非法启动表达式/尚未对编码充满信心欢迎帮助   安卓为什么XML和Java中的ImageView测量不同?   Android乘以双精度整数[java]   java如何将下一个数组项设置为变量的新值?   java编译ikvmc pwswiftcoreXXXX。jar作为clr。动态链接库   java测试没有单元测试调用的私有方法   在java中如何划分重复的正则表达式模式?   java活动不刷新onCreate()中的布局   Java用户输入nextLine()不等待输入   oracle11g用java编写ORACLE BLOB文件   mysql如何在Java程序中使用Hibernate?   java ADF从托管bean调用有界taskflow