A fast and correct bencode serialize/deserialize library
Project description
A fast and correct bencode serialize/deserialize library
introduction
Why yet another bencode package in python?
because I need a bencode library:
- Correct, which mean it should fully validate its inputs,
and won't try decode bencode bytes to
str
by default. Bencode doesn't have a utf-8 str type, only bytes, so many decoder try to decode bytes to str and fallback to bytes, this package won't, it parse bencode bytes value as python bytes. - Fast enough, that's why this package is compiled with cython.
- even cross implement, what's why
this package sill have a pure wheel
bencode2-${version}-py3-none-any.whl
pypi.
install
pip install bencode2
basic usage
import bencode2
assert bencode2.bdecode(b"d4:spaml1:a1:bee") == {b"spam": [b"a", b"b"]}
# If you want to decode dict with str keys:
# Note: this doesn't work with BitTorrent V2 torrent file.
assert bencode2.bdecode(b"d4:spaml1:a1:bee", str_key=True) == {"spam": [b"a", b"b"]}
assert bencode2.bencode({'hello': 'world'}) == b'd5:hello5:worlde'
Decoding
bencode have 4 native types, integer, string, array and directory.
This package will decode integer to int
, array to list
and
directory to dict
.
Because bencode string is not defined as utf-8 string, and will contain raw bytes
bencode2 will decode bencode string to python bytes
.
Encoding
Many python types are supported.
python type | bencode type |
---|---|
bool |
integer 0/1 |
int , enum.IntEnum |
integer |
str , enum.StrEnum |
string |
bytes , bytearray ,memoryview |
string |
list , tuple , NamedTuple |
array |
dict , OrderedDict |
directory |
types.MaapingProxy |
directory |
dataclasses | directory |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bencode2-0.2.3.tar.gz
(7.6 kB
view hashes)
Built Distributions
Close
Hashes for bencode2-0.2.3-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b33622bdbf4ff4cf09614cd3969efea82ac82376b440f665c542b326bb7a96c |
|
MD5 | 05f65746a6c5c3e03ce3c691b1d0b29d |
|
BLAKE2b-256 | c7b7225d133aec63440b7aa54469a7f684c4816344846625e4f6296c10bb09bb |
Close
Hashes for bencode2-0.2.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f867f6588ab0925bbba64785c0844482eb7dc20d8cbfdbc305bedfeb330a462 |
|
MD5 | 33e2bd67c67fc55ef2eaa144931799eb |
|
BLAKE2b-256 | b0bef31181bb4a1736d71e62754c4a31650dfbf78b9716c2615ee11ef031e885 |
Close
Hashes for bencode2-0.2.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ac47f10b8da68110eec761b44084b6f4fec1cf4471f93085bbb1e85bb70c9ce |
|
MD5 | 93b6900c79573cea670df084aeae3da5 |
|
BLAKE2b-256 | 3e2234e1bf5e96f4d504185bc60c84e54b81e86294ebf1f6cec5553bd547797f |
Close
Hashes for bencode2-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7f5c9dab0196e082a1f320df696d8360c089881599a039ee8bef25eb4e02941 |
|
MD5 | 77d7d0a205365594ac94893de3437851 |
|
BLAKE2b-256 | 974d5bd1cc84e132f3ff74f210bbd03550b2fea7c2c5881f8f629c1b5f309c99 |
Close
Hashes for bencode2-0.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6edecec5069f2f8a68e5c10b945e52bc6bef64d5e5ccb0cb5536cd8c45e54c5 |
|
MD5 | 1745c8b75274e64adaa843ee94e38261 |
|
BLAKE2b-256 | ebca25e7e49cf798001b2985074ef1523c67dd76502954d0992c005733d8fd75 |
Close
Hashes for bencode2-0.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe70a9189dc58b17513a7242873e047fbbc4693c0008311c1d2e9a191886f519 |
|
MD5 | 7a0bbeb914c367bcaada0425be3d0f13 |
|
BLAKE2b-256 | 724924ad1f280e610744d14653a2356fe5048b4d174f2809c58c4fa9363c40e6 |
Close
Hashes for bencode2-0.2.3-cp312-cp312-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b50d71e123b1e95c64aabb3c8a1a77a65e513fc4e9e114dba619038a59a0637 |
|
MD5 | 5adb795b3acf23c893751df09ca7389a |
|
BLAKE2b-256 | 81914d19a8c61aa5b610b32f7e1e621a46416004641a84db6b669e6f7b85189d |
Close
Hashes for bencode2-0.2.3-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d58ff7eee5be797e72f436f14ebf5bdc53eac7baad1dde92ae31724c38b9724d |
|
MD5 | d4e1590b95dd0ab4bb37df760314c386 |
|
BLAKE2b-256 | 0f01310fa6a62f97c1665f00f1d40104db79efde9ba260944240d641f8b2f409 |
Close
Hashes for bencode2-0.2.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cd26668807a63ce276e649147a17146b628cc7233ff6087db71379f0f63ab4a |
|
MD5 | 62cea3bfa13ff096292838568b78ac8f |
|
BLAKE2b-256 | dbc6b89c94153fcc07e731c79ca9004b6659a0a429ca8ccfde318ec233ab5fec |
Close
Hashes for bencode2-0.2.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea3a8f224e624e23d9f7efaf8302a2d3f2382cd9a7862a7fc16f9342e1ac847c |
|
MD5 | 85de6aabab297c9ec3aa80b63f83b999 |
|
BLAKE2b-256 | 52ce923204d085b58ecce31eccab344cccfd8246b019f5f7158bf5c1ee27fdfc |
Close
Hashes for bencode2-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 275f64e6064e13335255b29fedf688ff3a960d8d77b7551413d58fd89b97e061 |
|
MD5 | 57ff32505814b2e6beb091e418387ae8 |
|
BLAKE2b-256 | f23ab18d844f25b87f2990d7a4c11e3678bcd4cb14a889ef9f87797072f548c4 |
Close
Hashes for bencode2-0.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5d62b163e7b80b69854ba66928d273acb2da08e28e8ef9cd2182ed89ba9ccff |
|
MD5 | 8805ab3b0d1b31986352a32fcd394f06 |
|
BLAKE2b-256 | 207be23cd347f981e973ce2fa192472d9b6ef8e5538c9446d4314849cd5f7485 |
Close
Hashes for bencode2-0.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a489185ae5b5304fc3ba221f8fa8f6c8f4cc42a518d09198e24740e517cd654 |
|
MD5 | a5adfb6e84ba404d6ac1eab72b1418aa |
|
BLAKE2b-256 | 5707aa87c0e5fad05e1ab08736a990238956d9a86c79121608cf017ca78d0432 |
Close
Hashes for bencode2-0.2.3-cp311-cp311-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c60907eba7abfc4aca4a7d0e4a69f7fc1a46cf722b50c34532e15c6eb728a8bb |
|
MD5 | 1c49c30764052e9348cf7f0d169afaf3 |
|
BLAKE2b-256 | 16c08825af4bd05edf89229752b151209f5af288d566a3f97d2ee5d4fab370b8 |
Close
Hashes for bencode2-0.2.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f579f0b0dba808e7adca4b20db5638f1ed6d7e8fefb939132af475802998113b |
|
MD5 | d9b4ccf1faddd09ff2aab7642b1328b0 |
|
BLAKE2b-256 | f58f3d5286830c000c3ebe7eae7110b209b3ea623415eaa93d2c88e0d53e743a |
Close
Hashes for bencode2-0.2.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff54e4fe6c776f79e46528ecec2a8687124c56fab08bcf03c4138c7b7ad614c1 |
|
MD5 | a7569249d44316f7ba1ac98f06e5bb09 |
|
BLAKE2b-256 | 889d5d3eb47e6d38613ffa8e64c34fad6f74fcac68ec84a9d203c02af02c4668 |
Close
Hashes for bencode2-0.2.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7705aebcd90c2adf78cfadb81d836942a53ac07768f1ffe48c7f2ddbcd26ee9 |
|
MD5 | 7f0cb16646141b635ae0adc763c7f3f0 |
|
BLAKE2b-256 | 561454f1ecda58f24c88704931893d0cb6579a5b70bf5f1900a5243b22505d57 |
Close
Hashes for bencode2-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b63b664df02a8d6416f28cb3bc081a8a3032834da89236793d037f3c2bf8fc06 |
|
MD5 | aac33a67102d9c843da3c46392f7209d |
|
BLAKE2b-256 | ccf7f4152fe11d3422fa3bd706446f84db6efc14cf5a8455d0bb3900fcbae903 |
Close
Hashes for bencode2-0.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efc734c7a5264a690c9028ab2fc0d6df13bee467b92f8c6777760bad482bd20c |
|
MD5 | 840d95da0ff6da8835f3b51087c93df5 |
|
BLAKE2b-256 | 3eb5668e1a9860c52b378adcaa32bd261ac6ae935bee43191c9d5b55d8edd20f |
Close
Hashes for bencode2-0.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6ef225b1acde2de80641d213d9844d69c6f27547badc7caee279b30bd670e02 |
|
MD5 | 60fb8504d9c8b5f796a5eed310650dcc |
|
BLAKE2b-256 | ee7873817c860e5cfac2891a8013c03125c28e8804bef5e4cd4904f02ca326ff |
Close
Hashes for bencode2-0.2.3-cp310-cp310-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6a48a1d0b5f8208e44f8c0175723e1be3148bccbe05176791dd169a9d856db8 |
|
MD5 | e2889d8018b9d78196ee7c08d29f28e5 |
|
BLAKE2b-256 | 1d97ad4591b465b72e8b60b8d22aedc9d449ca03ce148769d9e47f2e827486c5 |
Close
Hashes for bencode2-0.2.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e80e88a2b821838fc1159673784a5376ad33f3f2566362e88ff4e7077c10dcbc |
|
MD5 | ce1fbbfa09d8d178954abdd4a9e4dfba |
|
BLAKE2b-256 | d8d048b54f3a38776f89dc65027949b15bd710e2b3e43b9fd889a3049cf25c73 |
Close
Hashes for bencode2-0.2.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96b1f3b129d39e398bb846270a9c43625b083a0c0c087bb227228d72dad60712 |
|
MD5 | d27df46ac7bf5cde44a61fec4c62a0b2 |
|
BLAKE2b-256 | a2753e7395deb1285ed7f57b3a08bed14a21432541d520e9bcf0264c599ec3eb |
Close
Hashes for bencode2-0.2.3-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d823c4af76ff545dd3f52f27d2486526423b6645333e0cf895b001b06fc2abfa |
|
MD5 | 1906a273a8a181389c4cf0be752e1ff9 |
|
BLAKE2b-256 | 2718aebf1749c5cea529aeb10fd269059b180a4fea6bb902c7ee3906a86166c0 |
Close
Hashes for bencode2-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50e48fcb89f1e95aaf6b7c6266f4bd2e16ce8edf60bb50de6a08497b62e070cb |
|
MD5 | 878c509ac0912dea766650efc797e3d8 |
|
BLAKE2b-256 | cb2fd78b628256f603c37dfa2bdbf5d2a487201da1718f0807f98a084537673f |
Close
Hashes for bencode2-0.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d74bebcd4d7d28162c4ce0321fd97dd80909127453e1e2cfd4efa8f9ec9c41bf |
|
MD5 | 05b8801d5de4700fffa8acab47809073 |
|
BLAKE2b-256 | 7cec53cd81e22aa52e105022d04ea16e137c473fea917c2f3f3bff89b9090672 |
Close
Hashes for bencode2-0.2.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc94b71e36acde798d70191b634bc70c8bd80430a328761a432d91fe7fb66662 |
|
MD5 | bebd6afc69b62fe879551d8ef6f47b2b |
|
BLAKE2b-256 | f01d56465b62559acd91c0d32c741afd9cedc1bff518695bf7b7451312b16a33 |
Close
Hashes for bencode2-0.2.3-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 006d6b652e39c3e2e493981aaf124495b55cba24823242e4a3811a6194325b96 |
|
MD5 | 5974bb3867e1e83ca436d9e6829b3e58 |
|
BLAKE2b-256 | 2e66433c73d86b4ccb56742e2c5d189f526748c3cd54398c75056f3313d9f784 |
Close
Hashes for bencode2-0.2.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30528e9a3a10c600c976a32aebd653f46c4fd9eb0edd88f95d4fe883ac7c4468 |
|
MD5 | 9284668d2c9d9c9cafe70f8a942959de |
|
BLAKE2b-256 | 4ed77a7c7b0e0f5018633db9d938c3352d69b9b4e8cbff7987253b6a3a01e2be |
Close
Hashes for bencode2-0.2.3-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a65cc51831ec1873b7116a40c60cfb4e91aea7b7722f7cb305b5be1b72d68b8 |
|
MD5 | f05aae8782ad362f474eb9ea1b8938a9 |
|
BLAKE2b-256 | 292a363374fc30101a27e893549dccd1e849041205c07cb2576bbca73b43455c |
Close
Hashes for bencode2-0.2.3-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c7b0087bd122f3dcec13b98aa39e25baaf2dd9abfe370febd3153d85ecfd697 |
|
MD5 | 69daef0c4c1ab683698522d22671d271 |
|
BLAKE2b-256 | 548e39395601b547a930cca69176b0119e6f4b297f247582cfb81f44df2744d8 |
Close
Hashes for bencode2-0.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe7d1d3113794c96f5439169d0bc8fee4fbfd527bee95072d280f2c3840fddb7 |
|
MD5 | 7d105dc7b325c7ccb61ccce19877118b |
|
BLAKE2b-256 | 6b201c8ad46e474c2d22b6b42a120b822e1d49d7312593698e2dda3ae4e8de83 |
Close
Hashes for bencode2-0.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1112bf8f547280f49890e32158f1944a630bb89db3e30b6d0092d90382762ea6 |
|
MD5 | 1a9803dc8c7c175b4e1be84ac8bb86e2 |
|
BLAKE2b-256 | 141c811ca616caf21214b05896ddf9cf315cff214c15d848e987bf93a3dff527 |
Close
Hashes for bencode2-0.2.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92f3bf96f2f0d5353d0c5f51b9d8d7a761c4f45140ce36f1dc50df70f81491e3 |
|
MD5 | 015e230ce1cc991c460f0d2258fd7884 |
|
BLAKE2b-256 | d92b5c039d95e47bc8a80df804c2199ac373dfcadae573345ec1420fc23edad2 |
Close
Hashes for bencode2-0.2.3-cp38-cp38-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21c5be9fd266b198b3411c231f54b71aeb2b0948ad3a8bc2410822efc20db13f |
|
MD5 | 658dec571e24d3d6c0656f684b9e474c |
|
BLAKE2b-256 | 85c43b9cfa7bf5ea8b78cdbd6c157bcaec197e69d578fe8925b1877b864c5ff6 |