Skip to main content

Yet another bencode implementation in Cython

Project description

A fast bencode implementation in Cython supports both Python2 & Python3 .

PyPI License Codecov Coverage

Install

pip install bencoder.pyx

Usage

from bencoder import bencode, bdecode, bdecode2

assert bencode("WWWWWW") == b'6:WWWWWW'
assert bencode(233) == b'i233e'

with open("debian-8.3.0-amd64-netinst.iso.torrent", "rb") as f:
    torrent = bdecode(f.read())
    print(torrent['announce'])

decoded, length = bdecode2(b'6:WWWWWWi233e')
assert decoded == b'WWWWWW'
assert length == 8

ChangeLog

Version 3.0.1

  • Add support for Python 3.11

Versoin 3.0.0

  • Add support for Python 3.9 & 3.10

  • Drop support for Python 2

  • Build wheels for musl & aarch64

Version 2.0.1

  • Add support for Python 3.8

  • Drop support for Python 3.4

Version 2.0.0

  • Use built-in dict instead of OrderedDict on Python >= 3.7

  • Drop support for Python 3.3

  • Fix bytes parsing when used with python-future #41

Version 1.2.1

  • Drop support for Python 2.6

  • Performance boost for bencode method. #7

Version 1.2.0

  • Add bdecode2 method. #6

Version 1.1.3

  • Performance Improvement

  • Fix package metainfo #3

Version 1.1.2

  • Support encode large int

Version 1.1.0

  • Use OrderedDict instaed of dict

  • Support encoding subclasses of dict

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

bencoder.pyx-3.0.1.tar.gz (85.7 kB view hashes)

Uploaded Source

Built Distributions

bencoder.pyx-3.0.1-pp39-pypy39_pp73-win_amd64.whl (32.8 kB view hashes)

Uploaded PyPy Windows x86-64

bencoder.pyx-3.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (44.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (45.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (46.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (35.2 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

bencoder.pyx-3.0.1-pp38-pypy38_pp73-win_amd64.whl (33.0 kB view hashes)

Uploaded PyPy Windows x86-64

bencoder.pyx-3.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (44.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (45.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (46.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (35.1 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

bencoder.pyx-3.0.1-pp37-pypy37_pp73-win_amd64.whl (33.0 kB view hashes)

Uploaded PyPy Windows x86-64

bencoder.pyx-3.0.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (44.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (45.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (47.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (35.1 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

bencoder.pyx-3.0.1-cp311-cp311-win_amd64.whl (39.2 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

bencoder.pyx-3.0.1-cp311-cp311-win32.whl (34.7 kB view hashes)

Uploaded CPython 3.11 Windows x86

bencoder.pyx-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl (287.5 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

bencoder.pyx-3.0.1-cp311-cp311-musllinux_1_1_s390x.whl (295.4 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ s390x

bencoder.pyx-3.0.1-cp311-cp311-musllinux_1_1_ppc64le.whl (295.9 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ppc64le

bencoder.pyx-3.0.1-cp311-cp311-musllinux_1_1_i686.whl (266.4 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

bencoder.pyx-3.0.1-cp311-cp311-musllinux_1_1_aarch64.whl (282.8 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

bencoder.pyx-3.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (293.4 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

bencoder.pyx-3.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (293.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

bencoder.pyx-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (282.8 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (288.4 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (271.7 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-cp311-cp311-macosx_11_0_arm64.whl (41.4 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

bencoder.pyx-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl (46.2 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

bencoder.pyx-3.0.1-cp311-cp311-macosx_10_9_universal2.whl (84.6 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

bencoder.pyx-3.0.1-cp310-cp310-win_amd64.whl (39.5 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

bencoder.pyx-3.0.1-cp310-cp310-win32.whl (35.1 kB view hashes)

Uploaded CPython 3.10 Windows x86

bencoder.pyx-3.0.1-cp310-cp310-musllinux_1_1_x86_64.whl (266.6 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

bencoder.pyx-3.0.1-cp310-cp310-musllinux_1_1_s390x.whl (272.2 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ s390x

bencoder.pyx-3.0.1-cp310-cp310-musllinux_1_1_ppc64le.whl (273.2 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ppc64le

bencoder.pyx-3.0.1-cp310-cp310-musllinux_1_1_i686.whl (257.6 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

bencoder.pyx-3.0.1-cp310-cp310-musllinux_1_1_aarch64.whl (261.1 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

bencoder.pyx-3.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (269.5 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

bencoder.pyx-3.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (270.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

bencoder.pyx-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (259.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (264.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (250.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-cp310-cp310-macosx_11_0_arm64.whl (42.4 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

bencoder.pyx-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl (47.2 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

bencoder.pyx-3.0.1-cp310-cp310-macosx_10_9_universal2.whl (86.3 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

bencoder.pyx-3.0.1-cp39-cp39-win_amd64.whl (41.4 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

bencoder.pyx-3.0.1-cp39-cp39-win32.whl (36.3 kB view hashes)

Uploaded CPython 3.9 Windows x86

bencoder.pyx-3.0.1-cp39-cp39-musllinux_1_1_x86_64.whl (262.5 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

bencoder.pyx-3.0.1-cp39-cp39-musllinux_1_1_s390x.whl (268.2 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ s390x

bencoder.pyx-3.0.1-cp39-cp39-musllinux_1_1_ppc64le.whl (270.6 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ppc64le

bencoder.pyx-3.0.1-cp39-cp39-musllinux_1_1_i686.whl (252.9 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

bencoder.pyx-3.0.1-cp39-cp39-musllinux_1_1_aarch64.whl (257.4 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

bencoder.pyx-3.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (265.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

bencoder.pyx-3.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (268.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

bencoder.pyx-3.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (256.1 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (260.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (247.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-cp39-cp39-macosx_11_0_arm64.whl (43.7 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

bencoder.pyx-3.0.1-cp39-cp39-macosx_10_9_x86_64.whl (48.8 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

bencoder.pyx-3.0.1-cp39-cp39-macosx_10_9_universal2.whl (89.4 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

bencoder.pyx-3.0.1-cp38-cp38-win_amd64.whl (41.5 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

bencoder.pyx-3.0.1-cp38-cp38-win32.whl (36.5 kB view hashes)

Uploaded CPython 3.8 Windows x86

bencoder.pyx-3.0.1-cp38-cp38-musllinux_1_1_x86_64.whl (273.5 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

bencoder.pyx-3.0.1-cp38-cp38-musllinux_1_1_s390x.whl (280.8 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ s390x

bencoder.pyx-3.0.1-cp38-cp38-musllinux_1_1_ppc64le.whl (283.2 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ppc64le

bencoder.pyx-3.0.1-cp38-cp38-musllinux_1_1_i686.whl (265.2 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

bencoder.pyx-3.0.1-cp38-cp38-musllinux_1_1_aarch64.whl (268.4 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

bencoder.pyx-3.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (266.2 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

bencoder.pyx-3.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (270.2 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

bencoder.pyx-3.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (255.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (262.0 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (248.8 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-cp38-cp38-macosx_11_0_arm64.whl (44.0 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

bencoder.pyx-3.0.1-cp38-cp38-macosx_10_9_x86_64.whl (48.7 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

bencoder.pyx-3.0.1-cp38-cp38-macosx_10_9_universal2.whl (89.6 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

bencoder.pyx-3.0.1-cp37-cp37m-win_amd64.whl (40.8 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

bencoder.pyx-3.0.1-cp37-cp37m-win32.whl (35.9 kB view hashes)

Uploaded CPython 3.7m Windows x86

bencoder.pyx-3.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl (226.4 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

bencoder.pyx-3.0.1-cp37-cp37m-musllinux_1_1_s390x.whl (233.2 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ s390x

bencoder.pyx-3.0.1-cp37-cp37m-musllinux_1_1_ppc64le.whl (236.8 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ ppc64le

bencoder.pyx-3.0.1-cp37-cp37m-musllinux_1_1_i686.whl (220.3 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

bencoder.pyx-3.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl (222.7 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ ARM64

bencoder.pyx-3.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (232.6 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

bencoder.pyx-3.0.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (236.0 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

bencoder.pyx-3.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (221.5 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (226.0 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (212.8 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-cp37-cp37m-macosx_10_9_x86_64.whl (47.6 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

bencoder.pyx-3.0.1-cp36-cp36m-win_amd64.whl (46.2 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

bencoder.pyx-3.0.1-cp36-cp36m-win32.whl (39.5 kB view hashes)

Uploaded CPython 3.6m Windows x86

bencoder.pyx-3.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl (228.7 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

bencoder.pyx-3.0.1-cp36-cp36m-musllinux_1_1_s390x.whl (235.7 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ s390x

bencoder.pyx-3.0.1-cp36-cp36m-musllinux_1_1_ppc64le.whl (239.0 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ ppc64le

bencoder.pyx-3.0.1-cp36-cp36m-musllinux_1_1_i686.whl (221.8 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

bencoder.pyx-3.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl (224.1 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ ARM64

bencoder.pyx-3.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl (235.0 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ s390x

bencoder.pyx-3.0.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (238.8 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ppc64le

bencoder.pyx-3.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (223.6 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

bencoder.pyx-3.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (228.1 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

bencoder.pyx-3.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (214.1 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

bencoder.pyx-3.0.1-cp36-cp36m-macosx_10_9_x86_64.whl (48.8 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page