快速Base64编码/解码
pybase64的Python项目详细描述
安装
pip install pybase64
用法
pybase64使用与PythonBase64“现代接口”(在Python2.4中引入)相同的API,以便于集成。
为了获得最快的解码速度,建议尽可能使用pybase64.b64decode和validate=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
- 首次公开发行