README.md

### [MTProto](https://core.telegram.org/mtproto) transport for Elixir [![Hex.pm](https://img.shields.io/hexpm/v/mtproto.svg)](https://hex.pm/packages/mtproto) [![Travis](https://img.shields.io/travis/ccsteam/mtproto.svg)](https://travis-ci.org/ccsteam/mtproto) [![Coverage Status](https://img.shields.io/coveralls/ccsteam/mtproto.svg)](https://coveralls.io/github/ccsteam/mtproto?branch=master)

---

MTProto (protocol) transport implementation in Elixir, acts like gen_tcp and others, supports most service commands.

---

### TODO

* Add checks for numbers in DH algorithm;
* Checks for salts and nonce hashes during authorization;
* Data Center migration;
* Server time synchronization (in RPC error 16/17);
* Handling RPC errors (bad_msg_notification).

---

## Installation

1. Add `mtproto` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [{:mtproto, "~> 57.0.0-alpha"}]
end
```

2. Ensure `mtproto` is started before your application:

```elixir
def application do
  [applications: [:mtproto]]
end
```

---

### Usage

...

---

### Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request