Lartza / bencoder.pyx

A fast bencode implementation in Cython

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bencoder.pyx

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

https://img.shields.io/travis/whtsky/bencoder.pyx/develop.svg?maxAge=3600&label=macOS https://img.shields.io/appveyor/ci/whtsky/bencoder-pyx/develop.svg?maxAge=3600&label=Windows https://img.shields.io/travis/whtsky/bencoder.pyx/develop.svg?maxAge=3600&label=wheels

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 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

About

A fast bencode implementation in Cython

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 90.4%Language:Shell 9.6%