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
, string to bytes
, array to list
and
directory to dict
.
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.1.tar.gz
(7.7 kB
view hashes)
Built Distributions
Close
Hashes for bencode2-0.2.1-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfe84016dc41f17603ccb6fbde64a999346a8ed21da76241f6fdb7ea5bff9848 |
|
MD5 | f2ee319af3eba0440870fe813aa3e4e9 |
|
BLAKE2b-256 | 86cb71f3679712d3989173b8f1c76e79828ac3452a81bdc5c122c9ec066220fd |
Close
Hashes for bencode2-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90b9caa768741eda95db12725e672636e339ada9457cc9c2c7045af8b34aa0a7 |
|
MD5 | 1f63f7f8cb29903cb18c7af8ab4d2cb0 |
|
BLAKE2b-256 | c1829705f755e84946097e6b9ca32d8359f574278b3548adf6a98b052d35ffd1 |
Close
Hashes for bencode2-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9b4affc7416ddc448e8b60c4ce2d0c58da22deae37809416b8440b808e37d37 |
|
MD5 | 7326b90a710e391cf2f07d30bcddefa8 |
|
BLAKE2b-256 | af22c35b6b2fd3ae8b23595878d7d7f2f69b62ba4283ecf553487a9fbc858eab |
Close
Hashes for bencode2-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90ee2d80b90d1c68defe78f6242c8a80c8d65e7d042a55455845ad56739b2319 |
|
MD5 | 557573234876c1fe7f440767774ea159 |
|
BLAKE2b-256 | 618ce61a30f6866ea2e6ba9920df92ecb74c59a8279fdddf799cd5f6e5f962d3 |
Close
Hashes for bencode2-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc2f0dd9e439102abfce2c2f5d6640d59bdba0aaba62e88fb3146dedb2e0f6fe |
|
MD5 | 343bcdcf93cd091a41d32cc79d9b43fc |
|
BLAKE2b-256 | 57f02e049b053c3010811fc54d6fa9312975e2b278f548de995b8d9ed80aa770 |
Close
Hashes for bencode2-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7bb328b5ba9eb0a7bd27008066b8fa7e8fc7954f38c1dede65a6f976970601c |
|
MD5 | 4ce65d1521f6c930bf4ce240552c0db9 |
|
BLAKE2b-256 | dd5c757d3a487330e32ceb5ab146e96eb4d9750fa20841d3968b9fc323a75b7b |
Close
Hashes for bencode2-0.2.1-cp312-cp312-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 825aa5c44bb436edc07de151dcbd0dfb1fffe399ce7ffa4f683cc4e01c12a230 |
|
MD5 | 73bdc21792bdec3b05414aaf28541f77 |
|
BLAKE2b-256 | 9be670cad7c476aad2944644bc73721306496dbbf89986a008c97a7199a30022 |
Close
Hashes for bencode2-0.2.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1e41f45bce75f69b261bfea4967f75af5b9d86a643d75d87dac2d82d0fb2430 |
|
MD5 | f93ef8939c3de550745bd473ed7bb019 |
|
BLAKE2b-256 | 19a2dc597ddabd59a774675fc07954c493fe9bfa51552cc5abd33d905369d5fa |
Close
Hashes for bencode2-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1fca02b72866fb9c247e1d9b8123ad430c239a425e64c71f4142bd70cc94723 |
|
MD5 | 2ee7f4cff9a152c4d987d2bc6bac1765 |
|
BLAKE2b-256 | c00e8b33c8ee9e5b802ed873b108df277753ea95f781cdf973c21da39b1449a7 |
Close
Hashes for bencode2-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa8aa3c80e601d2c04dd9622bec68c0121d3e135e581e81f9ec7c2c27b825dc0 |
|
MD5 | 7b70e1d5009ce6b5f1956d54bf463f54 |
|
BLAKE2b-256 | bbd7e502af23c37874fae4457e93c2d898a6b8fca50d84e196330ec9ee96d6e8 |
Close
Hashes for bencode2-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fb446a313cd09647f65907a7e6fe4fc4a96d27a72391828ceb0ad6bc81c929c |
|
MD5 | 257fb2986a862129807747b6d81cdc01 |
|
BLAKE2b-256 | 83e4d76e7ad4bb8119c1a5f58a23907d4935fe5cf77b8390b94616a05953cb7b |
Close
Hashes for bencode2-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac1e09403e4de9005287353bf9310a704a706fdc59c25e5e79a026ab7e37c003 |
|
MD5 | 8b1354abc9a353c58fbf78e111507aa5 |
|
BLAKE2b-256 | ebc9672ed4336bc6688a7f4c1712d5f8cb3ce8ca07d65e7da65dd1a07ec76d69 |
Close
Hashes for bencode2-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e76d866ca3f41537d1c15ee4f838059995049e7ce66d639561e222e902a51dd |
|
MD5 | 2d72d82383e73e8ee4080cac939af311 |
|
BLAKE2b-256 | 24dfe4b6a27887bf0188af6398768625881e09a04e750d6ec6d7e7e54c1e752b |
Close
Hashes for bencode2-0.2.1-cp311-cp311-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4125fd1a1404ed399a10f73e9c517752c83c73bceaaeac8614e6f86bdfd689f3 |
|
MD5 | 23f2b2d6fbc5849cc48ca00ac8ce05b0 |
|
BLAKE2b-256 | 04f174d0bcf787b308212725a63fd7c6b872703d4fa4ca2754956f3e7f455ec0 |
Close
Hashes for bencode2-0.2.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 394bde74652fee782ccb1ca407287c4d42edc9561492edcbfcd48063fe07c8be |
|
MD5 | f662205b0717b73903445063189eb7ba |
|
BLAKE2b-256 | a90f67a298fdeb70ca73ffdf989b6f17bfad3044c011a4db75351cbf05b8d723 |
Close
Hashes for bencode2-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eee9eca7c89fd62ef6ce88f6a2b8fd6540e953a1b1891d5934e40445329f488 |
|
MD5 | c76713006f39d2a7806a8a7d7bbc3a6f |
|
BLAKE2b-256 | 8133cbf2c9cbe7dc48175fb7c41cd749a8d82fec708866dc5bb81490aa1d0750 |
Close
Hashes for bencode2-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5470c2d2541e75f21455e3f0b777f5805457a30609740a15a78a5218f5c864e4 |
|
MD5 | 23c4bf495f786f81e6465de24b6d8181 |
|
BLAKE2b-256 | 867cc0079e5751078b5db565391201263edcab35ec47e675f73a5e82def115ce |
Close
Hashes for bencode2-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 609eb1e4aad599ca404a3ff23f172e582346df830b30950a93406653d51daed6 |
|
MD5 | 292a0a557030781936da7f42bd2aace3 |
|
BLAKE2b-256 | 3fde32f7749f8e5b2da102f9488b62605108ae07e0a1b4e1f9f1abb495887ef8 |
Close
Hashes for bencode2-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03cac897a298c0df17cdbca2615164f7fca8a3816a789f46f0b44acfd82fb550 |
|
MD5 | ce590541556bc2a0d5ed3a718da77095 |
|
BLAKE2b-256 | a4797e8e8388349a30c6851dd6d707db67cfcbce463c3e3a6c758747c1cefa2e |
Close
Hashes for bencode2-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca3838e66d42dd9a27cbe1cad287b3b3affb54ca4711bb628126f7afcecfcb5c |
|
MD5 | e325c81bac3a7d4f328abb34c8684090 |
|
BLAKE2b-256 | f5b30d347f23488110b11047a25759b3b1f0b4e8e1cf1138d47b4652e1fa4c5b |
Close
Hashes for bencode2-0.2.1-cp310-cp310-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1992af40d3f10852bb9494f685f4aa0771699d7c5c0dcdc891345ccc0c41411 |
|
MD5 | b46a546b497d671080d8d4d702d68bad |
|
BLAKE2b-256 | 431c728e5aa791a7bccde99bc8de01945d992bb7af776a4aea545b72d161576c |
Close
Hashes for bencode2-0.2.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da0b9845b690cc559baadf16d3ce51a09b7cee913b263239cbe88b8db1e2b79f |
|
MD5 | 63e7207b39c3a1c3d7683dc1fd902717 |
|
BLAKE2b-256 | cd8f09a2bb0a382305a66b9689b022c2e63c05def3c4b501f4907a317f023512 |
Close
Hashes for bencode2-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a715f4a075d4afe6f9ee0b3ca295361feeaadb3b4b0fe5fcf703b6be74dd982 |
|
MD5 | c8a5b33884e70caa7ac4dfa4e7e9769a |
|
BLAKE2b-256 | 2ed7aeb7002d9474b3c82e3258d75d66e490a4a7882959e81b8fb15d6631259e |
Close
Hashes for bencode2-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb128f97142858b3070f8c212c91aa42a79acc0687d795f1ddaaa1a9f9411740 |
|
MD5 | d35abb86969859fee4a4a63b32b2481e |
|
BLAKE2b-256 | bc8a4525eebba2dc6de1ac0f6c3e789aa78f401c5e92c0476ca43a270d16414c |
Close
Hashes for bencode2-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13921a0fa124001f987b0e83bb62ba473c249f1fa3d66918130ee5cce241c256 |
|
MD5 | 15fc0c584f91265d31fbe7e19fb649a3 |
|
BLAKE2b-256 | 09865baab8dcad25e2b7a0bf065383ad74ee70a06e2dd2e477e806747fce9f23 |
Close
Hashes for bencode2-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42b8a723954484c3b058b59726778de4a77bb88351020ebbe866113f7a1ba03a |
|
MD5 | 55892d9963759c6081a979969c757dab |
|
BLAKE2b-256 | f02c09c8082e94e26198a47935242fc39f8b6237753e06f8c00dc61ce88e0ae8 |
Close
Hashes for bencode2-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a18b19d0b057e553121909a614649f56fa38c43e854f0bd51414ee113654f23 |
|
MD5 | 68e5d5016c996a6be77b6f1810957ccb |
|
BLAKE2b-256 | 0d1e461de0545ed2397ae154eb8d970f2efc3a3a5f524118efc045e04ac4c75e |
Close
Hashes for bencode2-0.2.1-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c4ce08dc516b5fc35cf2843729848feb5ec47460cb878ac25e6a958354e690e |
|
MD5 | d7c7d3e6bf139d342f1a83f2d54513fc |
|
BLAKE2b-256 | bac23248a102e3727bbec89f1d83a9fad4b8f50440c131adabe9692cf2e578c2 |
Close
Hashes for bencode2-0.2.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9acb36d9aa425b8bd451808e3dc68ca9b3fe0fb8d3d50015d2d554cf757f32e2 |
|
MD5 | f7af764abc2434778585f89afb69fc4b |
|
BLAKE2b-256 | bdb036f64249d2790dc527a54e6c6d701499db466c524dd1769818d15dfb4e23 |
Close
Hashes for bencode2-0.2.1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e664b6e982ed68b7f32ccc4e6732ee99328386ba85a0900609f2f0558414fac |
|
MD5 | d1f66fe0089f5f4ba947fb00728f5336 |
|
BLAKE2b-256 | fbb8d8c4af220252e345dfb7b3231d645cbbb5a01b752220b0ad369d89067df9 |
Close
Hashes for bencode2-0.2.1-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d45c7169186f3e530fbff68516da4b92c9558ec04d588bd30747d285740dab12 |
|
MD5 | e8487860e2a6aec0bd505fae753116bf |
|
BLAKE2b-256 | 8d00902afd993b9b683e06412ce5b04eaf463cdf10c0d4399a7d65ecba3dddf9 |
Close
Hashes for bencode2-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 143521975f07a2d392dfd5a05c1344517e8bd42ec04778186477f340b79ad1ad |
|
MD5 | 4dcee06eb59d2f0af5d9fdf694dedf54 |
|
BLAKE2b-256 | 2aa2e9417a15e2753131ad51c71504cb8297dbc527a4f88783a91f038b15ff29 |
Close
Hashes for bencode2-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47ad08662b68700b136ce978e7f4954609c74402e9ffbf15cc519a2363cf8406 |
|
MD5 | 19d5474b9ca6e8604f0570c0deae09b2 |
|
BLAKE2b-256 | 4b5fabbacbbdeb5230289cfeaf246f84621d9b9e3e9deebede8c9931b29151a8 |
Close
Hashes for bencode2-0.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab018123d34689506ad3913c54392e3f1dc2da2de556a8ee26f2de060f1e1fbc |
|
MD5 | a49c80eaf16ec3e2024387cc634d6063 |
|
BLAKE2b-256 | 621fa16abfd20f959e7a80d590cc5e1cb0ae3137b0d2bc448e2d60f53ca1e695 |
Close
Hashes for bencode2-0.2.1-cp38-cp38-macosx_10_16_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4450db2fd224f887a63ed85382bd072981cd46ed3e690e1b40399530a4734e7 |
|
MD5 | 071be50df05c87ca4ed764fd2874e52f |
|
BLAKE2b-256 | 0f4b94eb80742c34a4adc55062ae68ce5b23eed3536942fd2431bb177be348eb |