Skip to main content

Library for encoding and decoding bencode data.

Project description

Bendercoder

Build Status Coverage Status

Library for encoding and decoding bencode data.

Table of content

Introduction

Bencode (pronounced like B-encode) is the encoding used by the peer-to-peer file sharing system BitTorrent for storing and transmitting loosely structured data. It supports four different types of values:

  • byte strings,
  • integers,
  • lists,
  • dictionaries (associative arrays).

Bencoding is most commonly used in torrent files. These metadata files are simply bencoded dictionaries.

Description from wikipedia.

Installing

pip install bendercoder

Usage

For decoding and encoding the integer number 10.

# coding=utf-8
from decoder import Decoder
from encoder import Encoder

decoder = Decoder(payload=b'i10e')
decoded_value = decoder.decode()
print(decoded_value)

encoder = Encoder(payload=decoded_value)
encoded_value = encoder.encode()
print(encoded_value)

For decoding and encoding the string foo.

# coding=utf-8
from decoder import Decoder
from encoder import Encoder

decoder = Decoder(payload=b'3:foo')
decoded_value = decoder.decode()
print(decoded_value)

encoder = Encoder(payload=decoded_value)
encoded_value = encoder.encode()
print(encoded_value)

For decoding and encoding the list [1, 2, 3, 'bar']

# coding=utf-8
from decoder import Decoder
from encoder import Encoder

decoder = Decoder(payload=b'li1ei2ei3e3:bare')
decoded_value = decoder.decode()
print(decoded_value)

encoder = Encoder(payload=decoded_value)
encoded_value = encoder.encode()
print(encoded_value)

For decoding and encoding the dictionary {'test': 'foo', 'bar': 2}

# coding=utf-8
from decoder import Decoder
from encoder import Encoder

decoder = Decoder(payload=b'd4:test3:foo3:bari2ee')
decoded_value = decoder.decode()
print(decoded_value)

encoder = Encoder(payload=decoded_value)
encoded_value = encoder.encode()
print(encoded_value)

Links

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

bendercoder-1.1.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bendercoder-1.1.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file bendercoder-1.1.1.tar.gz.

File metadata

  • Download URL: bendercoder-1.1.1.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0b3

File hashes

Hashes for bendercoder-1.1.1.tar.gz
Algorithm Hash digest
SHA256 b9287a186b65cb9f37a6cc754824c3ecceba5331ad8cd4e92ac9859123b56bac
MD5 e9f3a8631c6c0529082f9f1c5a5c0556
BLAKE2b-256 fa11e55b4f23fad2105cbbc9bae017d0392dbd5520093e1035557425acf7e659

See more details on using hashes here.

File details

Details for the file bendercoder-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: bendercoder-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0b3

File hashes

Hashes for bendercoder-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0dcd42a4d3bb4aaa9296803ee3321f272144c42a510a68bcbf524c6e882ea889
MD5 63319996630f904bba8cba4e98be066b
BLAKE2b-256 f3198e60934db07741d2c292f9ce562f4018cb2237fd25e2ef64dc8c0c13ff72

See more details on using hashes here.

Supported by

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