#telegram #mt-proto #tokio #server-client #tokio-rs #mtproto-server

nightly bin+lib mini-telegram

mini-telegram is an unofficial, monolithic, idiomatic implementation of MTProto (telegram) server built with Rust that compatible with all telegram clients (web, android, iOS, desktop)

5 releases

0.1.17 Feb 8, 2023
0.1.15 Feb 8, 2023
0.1.14 Feb 8, 2023
0.1.1 Feb 6, 2023
0.1.0 Feb 6, 2023

#196 in Text editors

33 downloads per month

Apache-2.0

160KB
2K SLoC

mini-telegram

mini-telegram is an unofficial, monolithic, idiomatic implementation of MTProto (telegram) server built with Rust that compatible with all telegram clients (web, android, iOS, desktop).

Disclaimer Please don't use mini-telegram in high scale production. The intent of this project is to provide a MVP (minimum viable product) of MTProto server.

Enterprise version

  • TODO

Run mini-telegram server

  • TODO

Connect android client

  • TODO

Connect Ios client

  • TODO

Connect Web client

  • TODO

Connect desktop client

  • TODO

lib.rs:

A minimal (i.e. very incomplete) implementation of a MTProto server and client.

The purpose of this project is to provide a larger example of an asynchronous Rust project built with Tokio. Do not attempt to run this in production... seriously.

Layout

The library is structured such that it can be used with guides. There are modules that are public that probably would not be public in a "real" MTProto client library.

The major components are:

  • server: MTProto server implementation. Includes a single run function that takes a TcpListener and starts accepting MTProto client connections.

  • client: an asynchronous MTProto client implementation.

  • cmd: implementations of the supported MTProto commands(APIs).

  • frame: represents a single MTProto protocol frame. A frame is used as an intermediate representation between a "command" and the byte representation.

Dependencies

~7–15MB
~148K SLoC