UNPKG

@2012mjm/telegram-mt-node

Version:
103 lines (63 loc) 4.33 kB
# Deprecation Notice **Dont use this for new projects.** **[telegram-mtproto](https://github.com/zerobias/telegram-mtproto) is much more advanced and has a better API.** **Also check [treact](https://github.com/goodmind/treact). My attempt to write Telegram client in React.js** <s>@goodmind/telegram-mt-node</s> ================================= [![npm version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coverage Status][coverage-image]][coverage-url] [![Climate Status][climate-image]][climate-url] [![Sauce Test Status][sauce-image]][sauce-url] **Telegram Mobile Protocol** [(MTProto)](https://core.telegram.org/mtproto) unofficial library in pure **javascript** on the Node.js platform ## About MTProto.. **MTProto** is the [Telegram Messenger](http://www.telegram.org ) 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](https://core.telegram.org/mtproto#general-description)): - 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**](https://github.com/goodmind/telegram-tl-node) dependency <img src="https://raw.githubusercontent.com/enricostara/telegram.link/master/telegram.link.png" width="20" /> [**@goodmind/telegram.link**](http://github.com/goodmind/telegram.link) main project depends by this library. ## Installation ```bash $ git clone --branch=master git://github.com/goodmind/telegram-mt-node.git $ cd telegram-mt-node $ npm install ``` ## Unit Testing ```bash $ npm test ``` ## Example You can find an example where take an auth key on the fly and ask what is the nearest DataCenter: ```bash $ npm run-script example ``` ## Dependencies - [@goodmind/telegram-tl-node](https://github.com/goodmind/telegram-tl-node): a Telegram TypeLanguage library - [get-log](https://github.com/enricostara/get-log): a Node.js Logging Utility, easy to use and ready for production. - [jsbn](https://github.com/andyperlitch/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](https://github.com/cwacek/bigint-node): the Leemon Baird BigInteger javascript library ported to Node.js - [node-cryptojs-aes](https://github.com/chengxianga2008/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](./LICENSE) [npm-url]: https://www.npmjs.org/package/@goodmind/telegram-mt-node [npm-image]: https://badge.fury.io/js/%40goodmind%2Ftelegram-mt-node.svg [travis-url]: https://travis-ci.org/goodmind/telegram-mt-node [travis-image]: https://travis-ci.org/goodmind/telegram-mt-node.svg?branch=master [coverage-url]: https://coveralls.io/r/enricostara/telegram-mt-node?branch=master [coverage-image]: https://img.shields.io/coveralls/enricostara/telegram-mt-node.svg [climate-url]: https://codeclimate.com/github/enricostara/telegram-mt-node [climate-image]: https://codeclimate.com/github/enricostara/telegram-mt-node/badges/gpa.svg [sauce-url]: https://saucelabs.com/u/telegram-mt-node [sauce-image]: https://saucelabs.com/browser-matrix/telegram-mt-node.svg