Telegram Mobile Protocol (MTProto) unofficial library in pure javascript on the Node.js platform
MTProto is the Telegram Messenger protocol "designed for access to a server API from applications running on mobile devices".
The Mobile Protocol is subdivided into three components (from the official site):
High-level component (API query language): defines the method whereby API queries and responses are converted to binary messages.
Cryptographic (authorization) layer: defines the method by which messages are encrypted prior to being transmitted through the transport protocol.
Transport component: defines the method for the client and the server to transmit messages over some other existing network protocol (such as, http, https, tcp, udp).
The telegram-mt-node library implements the Mobile Protocol and provides the following features:
Both TCP and HTTP connections implemented in the transport layer
A cipher implementation for AES and RSA encryption in the security layer
Both plain-text and encrypted message to communicate data with the server
Diffie-Hellman key exchange supported by the prime factorization function implemented in the security layer
MTProto TL-Schema compilation as javascript classes and functions via telegram-tl-node dependency
<img src="https://raw.githubusercontent.com/enricostara/telegram.link/master/telegram.link.png" width="20" /> telegram.link main project depends by this library.
$ git clone --branch=master git://github.com/enricostara/telegram-mt-node.git
$ cd telegram-mt-node
$ npm install
$ npm test
You can find an example where take an auth key on the fly and ask what is the nearest DataCenter:
$ npm run-script example
telegram-tl-node: a Telegram TypeLanguage library
get-log: a Node.js Logging Utility, easy to use and ready for production.
jsbn: a portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers.
bigint-node: the Leemon Baird BigInteger javascript library ported to Node.js
node-cryptojs-aes: A minimalist port of cryptojs javascript library to node.js, that supports AES symmetric key cryptography
The project is released under the Mit License