start | find | index | login or register | edit
Bencode
by earl, 4649 days ago
The encoding used by BitTorrent. Supports integers, binary strings, lists and dictionaries.

Strings are length-prefixed base ten followed by a colon and the string. For example 4:spam corresponds to 'spam'.

Integers are represented by an 'i' followed by the number in base 10 followed by an 'e'. For example i3e corresponds to 3 and i-3e corresponds to -3. Integers have no size limitation. i-0e is invalid. All encodings with a leading zero, such as i03e, are invalid, other than i0e, which of course corresponds to 0.

Lists are encoded as an 'l' followed by their elements (also bencoded) followed by an 'e'. For example l4:spam4:eggse corresponds to ['spam', 'eggs'].

Dictionaries are encoded as a 'd' followed by a list of alternating keys and their corresponding values followed by an 'e'. For example, d3:cow3:moo4:spam4:eggse corresponds to [describe 'cow': 'moo', 'spam': 'eggs' here] and d4:spaml1:a1:bee corresponds to [describe 'spam': ['a', 'b'] here]. Keys must be strings and appear in sorted order (sorted as raw strings, not alphanumerics).

-- Source: BitTorrent Protocol Specification

See also: XML, JSON, YAML

- http://wiki.theory.org/BitTorrentSpecification#bencoding
- http://en.wikipedia.org/wiki/Bencode
powered by vanilla
echo earlZstrainYat|tr ZY @.
earl.strain.at • esa3 • online for 6800 days • c'est un vanilla site