Skip to main content

Bencode parser

Project description


benparse is a bencode parser for Python 3. It is capable of reading and creating bencoded files such as torrents


  • Syntax is similar to built-in modules such as json and pickle
  • Has an optional strict mode that will raise an error when it encounters non-fatal errors such as out-of-order dict keys or integers with leading zeros. This ensures that "round-tripping" bencoded data (loading bencoded data and then dumping it back to bencode) will never caused unexpected changes
  • Able to change the character encoding used to encode/decode strings
  • Fully typed


Complete usage documentation and examples are available here

# Load a bencoded file
with open('linux_distro.torrent', 'rb') as file:
    torrent_dict = benparse.load(file)

# Make changes
torrent_dict[b'announce'] = b''

# Save a Python object as a bencoded file
with open('linux_distro.torrent', 'wb') as file:
    benparse.dump(torrent_dict, file)



Install from PyPI:

pip3 install benparse

Install from source:

git clone
pip3 install ./benparse


Tests are run using the built-in unittest module, and is used to measure code coverage

Run tests without measuring coverage:

python3 -m unittest discover tests

Run tests and measure coverage:

coverage run -m unittest discover tests

View the results:

coverage report

Generate a detailed report, outputted to ./htmlcov:

coverage html

Building documentation

Sphinx is used to build documentation

Build requirements:

How to build:

cd docs
make html

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

benparse-1.0.2.tar.gz (11.2 kB view hashes)

Uploaded source

Built Distribution

benparse-1.0.2-py3-none-any.whl (26.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page