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.2.tar.gz
(7.5 kB
view hashes)
Built Distributions
Close
Hashes for bencode2-0.2.2-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1516a5fb29b5915efc784fb9b127a9b47b76bf1a28a42d3c749a9fd6bcd37c7c |
|
MD5 | e1e9e1a0ac4a4a35c2504ccf269f7455 |
|
BLAKE2b-256 | d7e3a49bd545d807321f0b38aa5c8d9d7664882d100c6b379928478c2fca719f |
Close
Hashes for bencode2-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 044c4c2ff5565b669ec4110ceee30e05b63f13551cbece14ef24a120c901123c |
|
MD5 | 5962f4bab1afd90ddfdd85c0b0ae4f40 |
|
BLAKE2b-256 | e12ec33d91b1e0a7f493ae07ab591231b3b07fa5c0f06a7cbb2684bc29743b5c |
Close
Hashes for bencode2-0.2.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1bab61aab30c25d29ae80472612a99181b3862ae15101c25c6df7ddd023adb0 |
|
MD5 | f94f732096fe0aeb2fe8dd2ec570534f |
|
BLAKE2b-256 | a43beb7a9a6896b032f3ddb5b7b024728f0ca82e362b1aa0fb296781d60a1ce8 |
Close
Hashes for bencode2-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08bea05b9b5cd22248bbba3234dd906931d4cbd507d23dd2187ca9fefcf078dc |
|
MD5 | ac200d0868f948f45d5d61fe006329cc |
|
BLAKE2b-256 | ad5bd980e98c6fbbde45bcc32674466ef438cdea99ad5d8bcb9ce75184bd913c |
Close
Hashes for bencode2-0.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6120a3137639e624782b8c9a991378d681b33ecb9412e354ff1b699d7b1669f |
|
MD5 | 1cdb54a8193ef6298c1005556f8a2a75 |
|
BLAKE2b-256 | c81bafac18ac16e6f2e91de6a9947fc8a27c9ddfaeda3614a5ae0006d789c86c |
Close
Hashes for bencode2-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bfa0013c372cbec2025ca290ecaf62486c9ca3a5df96022ba2753f80d015fa6 |
|
MD5 | 6aa01215dc94e8c2b218318585535af0 |
|
BLAKE2b-256 | 87d8c30cc29b2aabf155a55390b22e020eecb04c3c5436ee868fff53ec4c61e2 |
Close
Hashes for bencode2-0.2.2-cp312-cp312-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c2ac9d3b1121049951420e0bc40fe5cf85937a247f46e9070609b3f26d61ef4 |
|
MD5 | cc1cf1467a5f50333012eadfb6704c67 |
|
BLAKE2b-256 | 80dc897ce799643b9ec76c4b50eba7aec47b1588b933fa5a16ef61569446a249 |
Close
Hashes for bencode2-0.2.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 241c2b5a45790a699ca8ff3c5dbc74f0c7d04f8bbf88f48ce9775b764a76c150 |
|
MD5 | 595e494cb5868c18f0f26025e3ccf4d6 |
|
BLAKE2b-256 | 64894430a0829048266dc180b2f7e49c328fb039968843d77f6157675ae3043e |
Close
Hashes for bencode2-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ec6533df30fe55ef49ae774f31f8b82341c2e0627a3301d9b58124e190dc684 |
|
MD5 | b804f2dcfd3a0fa9cc36f12b39c7ae7b |
|
BLAKE2b-256 | 5c1dddebdb2bcf6761e3ae5df263d1ae527c722238612a6a0c51bfbb5b7a809b |
Close
Hashes for bencode2-0.2.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c39e72c538fa2090f5cbd3e564b0bb96e1dcf5bc4d937a23089489dfa516c83 |
|
MD5 | a38a419bef113d2e36dc21f17bd59cda |
|
BLAKE2b-256 | cfd8e6814329580a8d90f752f95c0058bf0bcd555959ddc17a9111339c9ab374 |
Close
Hashes for bencode2-0.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7ecf650ee19ae3def7c8804e58820985b3713e9d58b25b25a19b58a331f176c |
|
MD5 | 3d2637aee08996c9c9d1b118d3026682 |
|
BLAKE2b-256 | fcc839501e9f6b8c3a68723357667d71542245bd97cf46c0a70a88797261f1b5 |
Close
Hashes for bencode2-0.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf831895ff1f10ff785b71a089e4d8d441baa0655a5ebe05c19203eff181f6e3 |
|
MD5 | 08421f223b4b5d24822c3a322db13066 |
|
BLAKE2b-256 | 1082fe77f896e175039f1d7d595648ab8e80e570a67bcb9b90e0ffeba8b50070 |
Close
Hashes for bencode2-0.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f818f28b4615b6c8e26ac729bcb54ad5527bd68490a06aaa6a7a4c5023a1094d |
|
MD5 | 97a593be343edda61919024bfd69dfbc |
|
BLAKE2b-256 | 9f26f1885b84de97d573b19a7d201cc88a1df818b830a5cfd9a8d97c7164c4dd |
Close
Hashes for bencode2-0.2.2-cp311-cp311-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66fbb10866ae3ddb3a04fe2e096321858b34b986c3bf057d34114d8291e9cc38 |
|
MD5 | b8ddcdc60c5a48d09b1b358efd88dc66 |
|
BLAKE2b-256 | 8b1e6c619b36ce47a97862799b06db97b6b1c8de8db35ba48e2f25d9433c7287 |
Close
Hashes for bencode2-0.2.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fa2f9655d045a84028bb3417377e61e19c816db18cd2f9a65bd6587153d11fc |
|
MD5 | 70fdb0c2fc8b46721a5e8b8bd8d32864 |
|
BLAKE2b-256 | eecd4ff8f2e8c6c653a23ada9594c017eade3ace9148ff8b60a2de29ee5b037b |
Close
Hashes for bencode2-0.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc73ec01047ca5e17aa1ec11045f9909649da513b7ec20bdf8c12a8a82014118 |
|
MD5 | 1f07ed09f7c638aa894d7f2388ddade8 |
|
BLAKE2b-256 | f54a4466c3a255e8f87de4802f581c23fb18cd5663ab52af6a3911095a85bd31 |
Close
Hashes for bencode2-0.2.2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d82dc3a8f81643d1efad74c69a3905e99cbf0665365ada24e21e1e77c4647b5e |
|
MD5 | 937510e6633eef3768d56ff578277a64 |
|
BLAKE2b-256 | 4e8ee97be228b15a5f6d7249f1332bc0036e8f0c21e160e089989b4d519c07e5 |
Close
Hashes for bencode2-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf18ec1db3000f6e94211af4f429bfb150df13913010255519e1838a25f65033 |
|
MD5 | f895f47ec426cea2b3efd757961d62d5 |
|
BLAKE2b-256 | 912fb4368947145f441898e8750222ef17eed5c1c9dd82566daf156bce3cc42e |
Close
Hashes for bencode2-0.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af8d721b99f229e11e60c17618ff511f2a40a429343cc2cbad9354857b28f49d |
|
MD5 | 11e131965b14cac25070936a4dcaa7a9 |
|
BLAKE2b-256 | 46f5c16c6678031f0528d787abe0e9aed1d13ead2b0ad749d14860aa74ef899a |
Close
Hashes for bencode2-0.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a2617ea7e7a0b699ec4b600d98791643c68d363a2775f5b431b47bb28e7b008 |
|
MD5 | 42357e0f920eda7ba49ede87eb773f73 |
|
BLAKE2b-256 | d558605a8a31f6a596346abad7b29d7b220084842a91b95171d94a33b50befa7 |
Close
Hashes for bencode2-0.2.2-cp310-cp310-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db9261d4121b85fc99eabd4e146ad7ceb81d9f6d8e76f7e72a01184d0c9a2b4c |
|
MD5 | 03e39ce855d4144f5a1899a728e8367d |
|
BLAKE2b-256 | e9b55b542fa5cf93c5214e3d328441a1f80f3df6d6c0e403fdee0e41d659efcb |
Close
Hashes for bencode2-0.2.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cd46fa8bc1fcf7ff418a6226e156661b4337671f6fb8f4b64d2408e0690362b |
|
MD5 | f018d8d55b4a5a7855823a247509e8b8 |
|
BLAKE2b-256 | 7480dd7c46d4353099cab0fb74b3a03dafef37eeacad9b6afb39cc10fcb58a91 |
Close
Hashes for bencode2-0.2.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8023be818cf8b71a9f2716d8e225a628cb773070202ad4d3e5d18cecd512d8f4 |
|
MD5 | 1b1d4d58076966dd096b0a3260f5a438 |
|
BLAKE2b-256 | b771c24716b329478ae19cc58c1a7c1248ba132fc885f984ef91e85203b523dc |
Close
Hashes for bencode2-0.2.2-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8904f3028ecde08863773ef9e63df6ef1cab3ec3fe29b76b3a92c4c777693d8f |
|
MD5 | 224aa4ec4ed85989b7b006592beecdea |
|
BLAKE2b-256 | 0d947bbf09a01186a55694f31cef6bab12deef5b27335250e4676c20817deb3c |
Close
Hashes for bencode2-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e721bc2e28a3223b8ffa7492fec64666197e74015033509733476b1a1944a06 |
|
MD5 | 2ea9f33e9ba320b364c6f4f6e8a599ee |
|
BLAKE2b-256 | 9d52c7be32b08d589c347e2b7b3360b6356ada0d87c6bc5085ac26502ba9a17d |
Close
Hashes for bencode2-0.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 118f056388f464457102754812878ebb5887253ff8e86c4721295cb176dc2ac4 |
|
MD5 | 982909e398bddfd5cb087fe78e77658e |
|
BLAKE2b-256 | e044a5f9e0a6920b1f114dbc41f3452a30ea64710df9de449216b923daf8847b |
Close
Hashes for bencode2-0.2.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 424f8dae131991267450b99ff4e05aba7a226e7f499ae079050e26f53145e4a0 |
|
MD5 | 650a2ecaaeec6c551ecfc678b1374c9b |
|
BLAKE2b-256 | 45f6402d8e1b9672dae6170bd0f4557ed8b5f423d2a118f8ffc83bb745bad002 |
Close
Hashes for bencode2-0.2.2-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8c5be28ee72969bfa7acf0b830bf3c0a8af2f32e638c707d6c1db6a5ef301d6 |
|
MD5 | 8c625d566af483dc0d73b3360a26c462 |
|
BLAKE2b-256 | 3a59a5f06d444633daf6161a3abb354c8aed50f8bd44bed697e9b5d488c3a4c5 |
Close
Hashes for bencode2-0.2.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f31860095db6128ba091c850436152e268820648fa3395e7a5b0e6874a35f1d5 |
|
MD5 | 18085ea786da6517c9c7fa11c1fa37f5 |
|
BLAKE2b-256 | 0ea6826e05df4c60383c4013f5464b710735ac5052d8ae46726bf5abd093acce |
Close
Hashes for bencode2-0.2.2-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62cdfe190f9723c0e02ad3ae52ba9c40187447bb9d222d22e5575d7b659333ac |
|
MD5 | d6367259bfd33de73917f1c90e83e5c1 |
|
BLAKE2b-256 | e42cfac5ba8044df581b5c0652b2dbb4018f9448c1cdcec774a5c9feee7115e0 |
Close
Hashes for bencode2-0.2.2-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b77a37d669ed541f4769c42cabac88445fa395edcea66ba217a061089feb636 |
|
MD5 | 92d8f352dcaef4788daaf689dbd718f4 |
|
BLAKE2b-256 | c1b4f98568c5ce4541e74365c69cada899b80c6d85ab550e5dee1e6284ad514a |
Close
Hashes for bencode2-0.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 913859c61bcbd8984ef32a576fb4886a75d407ecc9b51a7f3a9c4cbee5efc4c3 |
|
MD5 | e99379530e8f740c0a6d5b33c3759563 |
|
BLAKE2b-256 | 85ac9f11d6a9325e37ee720b6288fd7477d9832468a09a6d231719e018df5403 |
Close
Hashes for bencode2-0.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5273a640149ef50be3b94eb133bd8ac80f56cf90a68b9345230abf91fcb7eea |
|
MD5 | d8c79983f6c6135f2dcf1daab7e80659 |
|
BLAKE2b-256 | ecb0854afd74170c2a719782355ab047f56e60dfef1903fd2a6fecb639379abc |
Close
Hashes for bencode2-0.2.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf238dcac9957989ba5004e4efed473835b4878eb19a05091a709e31bd9949aa |
|
MD5 | d6e24d8e514127cfb1898344822bca02 |
|
BLAKE2b-256 | f74d8b11e1cdee5a6ef16dcb1cd92f4b87cdc6e06837fbecf048beadccb188b2 |
Close
Hashes for bencode2-0.2.2-cp38-cp38-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80f5347307ea930cbbba0557ab6450f6c864460b6e87ac9b82f2a3a90c6a0684 |
|
MD5 | aa0b8e2585f4c5b86fbe06b42e9ae902 |
|
BLAKE2b-256 | 942acca501ae1c012b8461912efd0a6d2f0d86a939ec63fe497c8186ad93310a |