Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/enricostara/telegram-mt-node
Telegram MTProto library (javascript, node.js)
https://github.com/enricostara/telegram-mt-node
Last synced: 2 months ago
JSON representation
Telegram MTProto library (javascript, node.js)
- Host: GitHub
- URL: https://github.com/enricostara/telegram-mt-node
- Owner: enricostara
- License: mit
- Created: 2014-11-20T11:04:15.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2016-11-29T11:10:49.000Z (about 8 years ago)
- Last Synced: 2024-10-14T11:18:38.739Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 567 KB
- Stars: 77
- Watchers: 11
- Forks: 25
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-telegram-bots - telegram-mt-node - Telegram MTProto library (Libraries / Node.js)
README
# telegram-mt-node
[![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 [**telegram-tl-node**](https://github.com/enricostara/telegram-tl-node) dependency[**telegram.link**](http://telegram.link) main project depends by this library.
## Installation
```bash
$ git clone --branch=master git://github.com/enricostara/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
- [telegram-tl-node](https://github.com/enricostara/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/telegram-mt-node
[npm-image]: https://badge.fury.io/js/telegram-mt-node.svg[travis-url]: https://travis-ci.org/enricostara/telegram-mt-node
[travis-image]: https://travis-ci.org/enricostara/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