msg2bytes
MessageToBytes(msg2bytes) is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller.
Install
pip install msg2bytes
Data Types
LIST = bytes([1])
SET = bytes([2])
TUPLE = bytes([3])
DICT = bytes([4])
NONE = bytes([5])
BOOLEAN = bytes([6])
TRUE = bytes([7])
FALSE = bytes([8])
STR = bytes([9])
BYTES = bytes([10])
DATETIME = bytes([11])
DECIMAL = bytes([12])
FILE = bytes([13])
DATE = bytes([14]) # v0.1.3引入
TIME = bytes([15]) # v0.1.3引入
INT = bytes([20]) # 抽象类型。实际不会使用的编码code。
INT8 = bytes([21])
INT16 = bytes([22])
INT32 = bytes([23])
INT64 = bytes([24])
UINT8 = bytes([25])
UINT16 = bytes([26])
UINT32 = bytes([27])
UINT64 = bytes([28])
BIGINT = bytes([29])
FLOAT = bytes([30]) # 抽象类型。实际不会使用的编码code。
SINGLE = bytes([31])
DOUBLE = bytes([32])
BIGFLOAT = bytes([33])
Usage
In [1]: import datetime
...: import msg2bytes
...:
In [2]: data1 = {
...: "id": 12,
...: "username": "ceshi",
...: "name": "测试",
...: "mobiles": ["12345678901", "12345678902"],
...: "add_time": datetime.datetime(2023, 4, 25, 18, 12, 32),
...: "mod_time": datetime.datetime.now(),
...: }
In [3]: print(data1)
{'id': 12, 'username': 'ceshi', 'name': '测试', 'mobiles': ['12345678901', '12345678902'], 'add_time': datetime.datetime(2023, 4, 25, 18, 12, 32), 'mod_time': datetime.datetime(2023, 4, 26, 13, 2, 5, 293796)}
In [4]: data2 = msg2bytes.dumps(data1)
In [5]: print(data2)
b'\x04\x06\x0b\x02id\x15\x0c\x0b\x08username\x0b\x05ceshi\x0b\x04name\x0b\x06\xe6\xb5\x8b\xe8\xaf\x95\x0b\x07mobiles\x01\x02\x0b\x0b12345678901\x0b\x0b12345678902\x0b\x08add_time\r\x132023-04-25T18:12:32\x0b\x08mod_time\r\x1a2023-04-26T13:02:05.293796'
In [6]: data3 = msg2bytes.loads(data2)
In [7]: print(data3)
{'id': 12, 'username': 'ceshi', 'name': '测试', 'mobiles': ['12345678901', '12345678902'], 'add_time': datetime.datetime(2023, 4, 25, 18, 12, 32), 'mod_time': datetime.datetime(2023, 4, 26, 13, 2, 5, 293796)}
Releases
v0.1.2
- First release.
v0.1.3
- Use more friendly exception names.
- Add datetime.date codec.
- Add datetime.time codec.
v0.1.4
- Fixed async keyword missing before virtual method problem. This wasn't actually cause any problems.
v0.1.5
- Doc update.
v0.1.6
- Doc update.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
msg2bytes-0.1.6.tar.gz
(10.0 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 msg2bytes-0.1.6.tar.gz.
File metadata
- Download URL: msg2bytes-0.1.6.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
222f347b3af5bae84fd0342b16e5304d8447ecda1ca94278f6a34b937bff37a3
|
|
| MD5 |
f610e13f3d6a10bdf6e1b1c9981e8cdc
|
|
| BLAKE2b-256 |
9e392eab61b7cf8a79e62d46e7f3b4ecf4fb4601439cb890badded7098c27a2a
|
File details
Details for the file msg2bytes-0.1.6-py3-none-any.whl.
File metadata
- Download URL: msg2bytes-0.1.6-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff5eeee036a4e7bc72ec0921b1cf0b865a55c57c453be1899a20473d64fcdd7a
|
|
| MD5 |
c918ceed57bc5a01d983b0a72546ce1c
|
|
| BLAKE2b-256 |
c4f612e645b93683b8609fcab3d1735fc963bdc36080fb78e6baccc52766666d
|