[dxcode] A distinctive, URL‑safe binary encoder with the signature `dx` prefix, CRC16 checksum, and smart compression.
Project description
dxcode - Python 实现
带有 dx 前缀的自定义编码算法的 Python 实现。
安装
pip install dxcode
或从源码安装:
git clone https://github.com/dogxiii/dxcode.git
cd dxcode/implementations/python
pip install -e .
使用方法
基本使用
from dxcode import dx_encode, dx_decode, is_dx_encoded
# 编码字符串
encoded = dx_encode('你好,Dogxi!')
print(encoded) # dxXXXX...
# 解码
decoded = dx_decode(encoded)
print(decoded) # 你好,Dogxi!
# 检查是否为 DX 编码
print(is_dx_encoded(encoded)) # True
print(is_dx_encoded('hello')) # False
编码字节数据
from dxcode import dx_encode, dx_decode
# 编码字节
data = b'\x00\x01\x02\xfe\xff'
encoded = dx_encode(data)
print(encoded)
# 解码为字节
decoded = dx_decode(encoded, as_bytes=True)
print(decoded) # b'\x00\x01\x02\xfe\xff'
处理文件
from dxcode import dx_encode, dx_decode
# 编码文件内容
with open('secret.txt', 'rb') as f:
encoded = dx_encode(f.read())
# 保存编码后的内容
with open('secret.dx', 'w') as f:
f.write(encoded)
# 解码文件
with open('secret.dx', 'r') as f:
decoded = dx_decode(f.read(), as_bytes=True)
with open('secret_decoded.txt', 'wb') as f:
f.write(decoded)
API 参考
dx_encode(data)
将数据编码为 DX 格式。
参数:
data:str | bytes | bytearray- 要编码的数据
返回值:
str- 以dx为前缀的编码字符串
示例:
dx_encode('Hello') # 字符串
dx_encode(b'\x00\x01') # 字节
dx_decode(encoded, as_bytes=False)
将 DX 编码的字符串解码。
参数:
encoded:str- DX 编码的字符串(必须以dx开头)as_bytes:bool- 是否返回字节(默认False,返回字符串)
返回值:
str | bytes- 解码后的数据
异常:
ValueError- 如果输入不是有效的 DX 编码
示例:
dx_decode('dxXXXX...') # 返回字符串
dx_decode('dxXXXX...', as_bytes=True) # 返回字节
is_dx_encoded(s)
检查字符串是否为有效的 DX 编码。
参数:
s:str- 要检查的字符串
返回值:
bool- 是否为有效的 DX 编码
get_dx_info()
获取 DX 编码的信息。
返回值:
dict- 包含版本、作者、字符集等信息
常量
from dxcode import DX_CHARSET, DX_PREFIX, DX_MAGIC, DX_PADDING
print(DX_CHARSET) # DX 字符集
print(DX_PREFIX) # 'dx'
print(DX_MAGIC) # 0x44
print(DX_PADDING) # '='
命令行工具
安装后可以在命令行使用:
# 编码
echo "Hello, Dogxi!" | dx-encode
# 解码
echo "dxXXXX..." | dx-decode
# 或者直接使用
dx-encode "Hello, World!"
dx-decode "dxXXXX..."
异常处理
from dxcode import dx_decode, DxEncodingError
try:
dx_decode('invalid-string')
except DxEncodingError as e:
print(f'解码错误: {e}')
相关
- dxcode - JavaScript/TypeScript 库
- dxcode-cli - CLI 命令行工具
- dxc.dogxi.me - 在线编码解码
兼容性
- Python >= 3.7
许可证
MIT License © Dogxi
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dxcode-2.1.0.tar.gz
(7.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dxcode-2.1.0.tar.gz.
File metadata
- Download URL: dxcode-2.1.0.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1459edf20d1748d9fca65cb82aad73efd84d6188e935bce24bee19e5059f69a8
|
|
| MD5 |
38ed96142ea7876fdf14f9ff8fb6b99a
|
|
| BLAKE2b-256 |
fc02be9c14d2af00df574183a176485e00aeb52260a301da1466cce9c3a98d99
|
File details
Details for the file dxcode-2.1.0-py3-none-any.whl.
File metadata
- Download URL: dxcode-2.1.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e811ae50b477eff2b10a11eb30fd1399bd21cd6f7395cf38807ecd40b8598df
|
|
| MD5 |
f69fd5b5760e22802da244d99555d3c4
|
|
| BLAKE2b-256 |
87fd553db388dc6898830be4dcb8c2679c7e618ab3193f15f6fc155042d3c68c
|