快速Base64编码/解码

pybase64的Python项目详细描述


快速Base64实现

license-statuspypi-statuspython-versionsDocumentation Statustravis-statusappveyor-statuscodecov-status

此项目是libbase64上的包装。

它旨在为base64编码/解码提供一种快速的base64实现。

安装

pip install pybase64

用法

pybase64使用与PythonBase64“现代接口”(在Python2.4中引入)相同的API,以便于集成。

为了获得最快的解码速度,建议尽可能使用pybase64.b64decodevalidate=True

importpybase64print(pybase64.b64encode(b'>>>foo???',altchars='_:'))# b'Pj4_Zm9vPz8:'print(pybase64.b64decode(b'Pj4_Zm9vPz8:',altchars='_:',validate=True))# b'>>>foo???'# Standard encoding helpersprint(pybase64.standard_b64encode(b'>>>foo???'))# b'Pj4+Zm9vPz8/'print(pybase64.standard_b64decode(b'Pj4+Zm9vPz8/'))# b'>>>foo???'# URL safe encoding helpersprint(pybase64.urlsafe_b64encode(b'>>>foo???'))# b'Pj4-Zm9vPz8_'print(pybase64.urlsafe_b64decode(b'Pj4-Zm9vPz8_'))# b'>>>foo???'

还提供了一个命令行工具。它有编码、解码和基准子命令。

usage: pybase64 [-h] [-V] {benchmark,encode,decode} ...

pybase64 command-line tool.

positional arguments:
  {benchmark,encode,decode}
                        tool help
    benchmark           -h for usage
    encode              -h for usage
    decode              -h for usage

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit

关于Read the Docs的完整文档。

基准

运行python 3.7.2、apple llvm版本10.0.0(clang-1000.11.45.5)、macosx10.14.2,英特尔酷睿i7-4870hq@2.50ghz

pybase64 0.5.0 (C extension active - AVX2)
bench: altchars=None, validate=False
pybase64._pybase64.encodebytes:   1734.776 MB/s (13,271,472 bytes -> 17,928,129 bytes)
pybase64._pybase64.b64encode:     4039.539 MB/s (13,271,472 bytes -> 17,695,296 bytes)
pybase64._pybase64.b64decode:     1854.423 MB/s (17,695,296 bytes -> 13,271,472 bytes)
base64.encodebytes:                 78.352 MB/s (13,271,472 bytes -> 17,928,129 bytes)
base64.b64encode:                  539.840 MB/s (13,271,472 bytes -> 17,695,296 bytes)
base64.b64decode:                  287.826 MB/s (17,695,296 bytes -> 13,271,472 bytes)
bench: altchars=None, validate=True
pybase64._pybase64.b64encode:     4156.607 MB/s (13,271,472 bytes -> 17,695,296 bytes)
pybase64._pybase64.b64decode:     4107.997 MB/s (17,695,296 bytes -> 13,271,472 bytes)
base64.b64encode:                  559.342 MB/s (13,271,472 bytes -> 17,695,296 bytes)
base64.b64decode:                  143.674 MB/s (17,695,296 bytes -> 13,271,472 bytes)
bench: altchars=b'-_', validate=False
pybase64._pybase64.b64encode:     2786.776 MB/s (13,271,472 bytes -> 17,695,296 bytes)
pybase64._pybase64.b64decode:     1124.136 MB/s (17,695,296 bytes -> 13,271,472 bytes)
base64.b64encode:                  322.427 MB/s (13,271,472 bytes -> 17,695,296 bytes)
base64.b64decode:                  205.195 MB/s (17,695,296 bytes -> 13,271,472 bytes)
bench: altchars=b'-_', validate=True
pybase64._pybase64.b64encode:     2806.271 MB/s (13,271,472 bytes -> 17,695,296 bytes)
pybase64._pybase64.b64decode:     2740.456 MB/s (17,695,296 bytes -> 13,271,472 bytes)
base64.b64encode:                  314.709 MB/s (13,271,472 bytes -> 17,695,296 bytes)
base64.b64decode:                  121.803 MB/s (17,695,296 bytes -> 13,271,472 bytes)

更改日志

1.0.0

  • 放弃Python3.4支持
  • 放弃Python2.7支持

0.5.0

  • 发布Python3.7控制盘
  • 放弃Python3.3支持

0.4.0

  • 当validate==false时加快解码速度

0.3.1

  • 解决部署问题

0.3.0

  • 添加encodebytes函数

0.2.1

  • 修复了Windows上的无效结果

0.2.0

  • 添加了文档

  • 在主脚本中添加了子命令:

    • help
    • version
    • encode
    • decode
    • benchmark

0.1.2

  • 更新了Base64本机库

0.1.1

  • 已修复部署问题

0.1.0

  • 首次公开发行

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

推荐PyPI第三方库


热门话题
java HQL内联查询   java重用拖缆对象   java EJB参考配置   Java Hashmap在散列上迭代并获取除当前键以外的所有键   java在AndroidX中实现Glide 4.10.0时发生错误AppGlideModuleImpl实现不正确   java JPA标准API类似/或基于关系   如何在运行时解决“java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver”?   java在链表中的特定位置插入节点   java如何为一个目录生成一个ID,这样即使在重命名之后也可以跟踪它   在Java中将字符串转换为哈希集   如何使用ewsjavaapi获取共享日历   类Java此类型的方法未定义   ArrayBag的java概念   java JVM在启动时占用整个XMX内存   在IE10中显示图像时发生java错误