@goodmind/telegram-mt-node v0.9.16
Deprecation Notice
Don’t use this for new projects.
telegram-mtproto is much more advanced and has a better API.
Also check treact. My attempt to write Telegram client in React.js
@goodmind/telegram-mt-node
Telegram Mobile Protocol (MTProto) unofficial library in pure javascript on the Node.js platform
About MTProto..
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).
telegram-mt-node in short..
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 @goodmind/telegram-tl-node dependency
@goodmind/telegram.link main project depends by this library.
Installation
$ git clone --branch=master git://github.com/goodmind/telegram-mt-node.git
$ cd telegram-mt-node
$ npm install
Unit Testing
$ npm test
Example
You can find an example where take an auth key on the fly and ask what is the nearest DataCenter:
$ npm run-script example
Dependencies
@goodmind/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
License
The project is released under the Mit License