快速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在TextView中对齐部分文本   带有iText和eTPKCS11的java PKCS#11签名。dll&SunPKCS11提供程序   java Intellij Idea找不到jar   java Chrome/Firefox和Jetty HTTPS   java我无法打包找不到的JavaFX应用程序模块   多线程Java:排序从异步任务检索的结果   java客户端/服务器socket不能与外部连接一起工作   java如何在单击“下一步”按钮时获取其他详细信息?   java组织。springframework。网状物客户RestTemplate应声明为@Bean,而plain@Autowired抛出错误   java如何绘制javax。摆动将ImageIcon转换为JavaFX。fxml呈现用户界面?   使用for循环的Java跟踪   java如何编码字符串以显示彩色文本(基于字符串中的前缀)   Java保存/打开文件对象   基于java复选框的搜索:使用尽可能多的“”动态生成准备好的语句作为选中复选框的计数   java为什么crawler4j随机挂起?