README.md

Bencodex
========

A encode/decode library for [bencoding](http://en.wikipedia.org/wiki/Bencode)


Bencode supports four types of objects

  * `string`     - Implemented as an ASCII encoded binary
  * `integer`    - Encoded in base 10 ASCII
  * `list`       - Ordered, heterogenious list
  * `dictionary` - String keys with heterogenious values in lexicographical order

Decode Bencode terms into Elixir terms

```elixir
Bencodex.decode("i1e")        # => 1
Bencodex.decode("3:foo")      # => "foo"
Bencodex.decode("li1e3:fooe") # => [1, "foo"]
Bencodex.decode("d3:fooi1ee") # => %{"foo" => 1}
```

Encode Elixir terms into Bencode terms

The accepted types are integer, binary (string), list and map

```elixir
Bencodex.encode(1)             # => "i1e"
Bencodex.encode("foo")         # => "3:foo"
Bencodex.encode([1, "foo"])    # => "li1e3:fooe"
Bencodex.encode(%{"foo" => 1}) # => "d3:fooi1ee"
```