跳转到主要内容

快速MUTF-8编码器和解码器

项目描述

Tests

mutf-8

此软件包包含用于MUTF-8字符编码的简单纯Python以及C编码器和解码器。在大多数情况下,您还可以解析更罕见的CESU-8。

这些天,当您处理与JVM相关的文件或协议时,最有可能遇到MUTF-8。Java .class 文件中的字符串使用MUTF-8编码,JNI传递的字符串以及对象序列化器导出的字符串。

此库是从Lawu中提取出来的,Lawu是一个用于处理JVM类文件的Python库。

🎉 安装

从PyPi安装此软件包

pip install mutf8

以下提供了二进制轮盘

py3.6 py3.7 py3.8 py3.9
OS X (x86_64) y y y y
Windows (x86_64) y y y y
Linux (x86_64) y y y y

如果不可用二进制轮盘,它将尝试使用任何C99编译器从源代码构建C扩展。如果无法构建,它将回退到纯Python版本。

用法

编码和解码简单

from mutf8 import encode_modified_utf8, decode_modified_utf8

unicode = decode_modified_utf8(byte_like_object)
bytes = encode_modified_utf8(unicode)

此模块 不会 在全局范围内注册自身作为编解码器,因为导入应该是无副作用的。

📈 基准测试

C扩展显著更快 - 通常快20倍到40倍。

MUTF-8解码

名称 最小值(μs) 最大值(μs) 标准差 操作数
cmutf8-decode_modified_utf8 0.00009 0.00080 0.00000 9957678.56358
pymutf8-decode_modified_utf8 0.00190 0.06040 0.00000 450455.96019

MUTF-8编码

名称 最小值(μs) 最大值(μs) 标准差 操作数
cmutf8-encode_modified_utf8 0.00008 0.00151 0.00000 11897361.05101
pymutf8-encode_modified_utf8 0.00180 0.16650 0.00000 474390.98091

C 扩展

C 扩展是可选的。如果不存在二进制包或 C 编译器,将使用纯 Python 版本。如果您想确保使用 C 版本,请直接导入它

from mutf8.cmutf8 import decode_modified_utf8

decode_modified_utf(b'\xED\xA1\x80\xED\xB0\x80')

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

mutf8-1.0.6.tar.gz (6.4 kB 查看散列值)

上传时间

构建分布

mutf8-1.0.6-cp39-cp39-win_amd64.whl (11.4 kB 查看散列值)

上传时间 CPython 3.9 Windows x86-64

mutf8-1.0.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.4 kB 查看散列值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

mutf8-1.0.6-cp39-cp39-macosx_10_14_x86_64.whl (8.7 kB 查看散列值)

上传时间 CPython 3.9 macOS 10.14+ x86-64

mutf8-1.0.6-cp38-cp38-win_amd64.whl (11.4 kB 查看散列值)

上传时间 CPython 3.8 Windows x86-64

mutf8-1.0.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.1 kB 查看散列值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

mutf8-1.0.6-cp38-cp38-macosx_10_14_x86_64.whl (8.7 kB 查看散列值)

上传时间 CPython 3.8 macOS 10.14+ x86-64

mutf8-1.0.6-cp37-cp37m-win_amd64.whl (11.4 kB 查看散列值)

上传于 CPython 3.7m Windows x86-64

mutf8-1.0.6-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.9 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

mutf8-1.0.6-cp37-cp37m-macosx_10_14_x86_64.whl (8.7 kB 查看哈希值)

上传于 CPython 3.7m macOS 10.14+ x86-64

mutf8-1.0.6-cp36-cp36m-win_amd64.whl (11.5 kB 查看哈希值)

上传于 CPython 3.6m Windows x86-64

mutf8-1.0.6-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.9 kB 查看哈希值)

上传于 CPython 3.6m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

mutf8-1.0.6-cp36-cp36m-macosx_10_14_x86_64.whl (8.7 kB 查看哈希值)

上传于 CPython 3.6m macOS 10.14+ x86-64

支持者