Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/enricostara/telegram.link

Telegram API library (javascript, node.js)
https://github.com/enricostara/telegram.link

Last synced: 2 months ago
JSON representation

Telegram API library (javascript, node.js)

Lists

README

        

# telegram.link
[![npm version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coverage Status][coverage-image]][coverage-url] [![Climate Status][climate-image]][climate-url] [![Dependency Status][gemnasium-image]][gemnasium-url]
[![Sauce Test Status][sauce-image]][sauce-url]

**ALPHA SOFTWARE**

### _telegram.link_ is a Telegram API library for

- **Hybrid Mobile Apps** (phone and tablet)

- **Desktop Web Apps** (standard HTML5 browsers)

- **Server-side Apps** (i.e. a Command-Line Interface)

- **Desktop Apps** (i.e. as third party module using the [NW.js](https://github.com/nwjs/nw.js) runtime)

**telegram.link** is an unofficial **porting in javascript** of the [Telegram Application Programming Interface](https://core.telegram.org/api).

**telegram.link** library enables to **write once** a **client-application** (whole or only the communication part) that
runs both on **mobile and desktop browsers** and also on a **Node.js server** and connect to the **Telegram data-centers**
via standard [protocol](https://core.telegram.org/mtproto) and API.

## Telegram.link in action!

To start with the **telegram.link** library, you can install and study the [Termgram](http://termgram.me) application.
**Termgram** is a terminal client to connect with Telegram and uses all the features currently available in **telegram.link**.
The source code is quite straightforward and you'll be able to take inspiration to build your own application!
As soon as a new feature will be available in **telegram.link** it will be exploited by **Termgram**.

## Project Status

- [Creating an Authorization Key](https://core.telegram.org/mtproto/auth_key): completed

- [User Autorization](https://core.telegram.org/api/auth): completed

- user-contact/update-message management, message exchange: completed

- Starts the [ALPHA](https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha) phase.

_See the project status page on the [wiki](https://github.com/enricostara/telegram.link/wiki/Project-Status) for the last notes._

## Documentation

The api documentation is generated under the _doc/_ folder.

_See the documentation page on the [wiki](https://github.com/enricostara/telegram.link/wiki/Docs)._

## Project Architecture

The whole library is split in **three projects**:

- **telegram.link** (this library): is the main project and provides the **highest-level interface** to communicate with the Telegram data-center.
When you write your **_'telegram-like-app'_** you should deal only with this module.

- [**telegram-mt-node**](https://github.com/enricostara/telegram-mt-node) (dependency): implements the **Telegram Mobile Protocol** [(MTProto)](https://core.telegram.org/mtproto),
the protocol level to establish a secure communication with the Telegram cloud.

- [**telegram-tl-node**](https://github.com/enricostara/telegram-tl-node) (dependency): implements the core [**TypeLanguage types**](https://core.telegram.org/mtproto/TL) and
a **TypeBuilder** class that writes **Type classes and functions** in pure javascript parsing TypeLanguage [schemas](https://core.telegram.org/schema).
TypeLanguage types represent the **building blocks of the Telegram protocol**.

### Other direct dependencies

- [get-flow](https://github.com/enricostara/get-flow): just yet another Node.js flow control utility, powerful and easy to use

- [get-log](https://github.com/enricostara/get-log): a Node.js logging utility, easy to use and ready for production environment.

- [requirish](https://github.com/enricostara/requirish): a tool for avoiding the ../../../ relative paths problem, includes a
browserify-transform to rewrites the require() for browser.

## Installation

To get the complete package:
```bash
$ git clone --branch=master git://github.com/enricostara/telegram.link.git
$ cd telegram.link
$ npm install
```

To install the library as dependency for your app (no tests, no docs, no dev files.. only pure code!):
```bash
$ cd YourApp
$ npm install --save telegram.link
```

## Unit Testing

You can run unit-test executing the following command in the project-root folder:
```bash
$ npm test
```

### About Telegram..

[Telegram](http://www.telegram.org ) is a cross-platform messenger whose clients are **open source**.
Telegram users can exchange encrypted and self-destructing messages, photos, videos and documents (all file-types supported).
Telegram is officially available for Android and iOS (including tablets and devices without Wi-Fi).
Unofficial clients for Windows Phone, as well as a web version, OS X version, Linux version and a Windows desktop client
are available from independent developers using the **Telegram API**
([from Wikipedia](http://en.wikipedia.org/wiki/Telegram_\(software\))).

### About Node.JS..

[Node.js](http://nodejs.org) is a cross-platform runtime environment for server-side and networking applications.
Node.js applications are written in JavaScript, and can be run within the Node.js runtime on OS X, Microsoft Windows and
Linux with no changes ([from Wikipedia](http://en.wikipedia.org/wiki/Node.js)).

### About the telegram.link logo ..

Logo crafted by [Diego Pasquali](http://dribbble.com/diegopq)

## License

The project is released under the [MIT license](./LICENSE)

[npm-url]: https://www.npmjs.org/package/telegram.link
[npm-image]: https://badge.fury.io/js/telegram.link.svg

[travis-url]: https://travis-ci.org/enricostara/telegram.link
[travis-image]: https://travis-ci.org/enricostara/telegram.link.svg?branch=master

[climate-url]: https://codeclimate.com/github/enricostara/telegram.link
[climate-image]: https://codeclimate.com/github/enricostara/telegram.link/badges/gpa.svg

[coverage-url]: https://coveralls.io/r/enricostara/telegram.link?branch=master
[coverage-image]: https://img.shields.io/coveralls/enricostara/telegram.link.svg

[gemnasium-url]: https://gemnasium.com/enricostara/telegram.link
[gemnasium-image]: https://gemnasium.com/enricostara/telegram.link.svg

[sauce-url]: https://saucelabs.com/u/enricostara
[sauce-image]: https://saucelabs.com/browser-matrix/enricostara.svg