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: 15 days ago
JSON representation
Telegram API library (javascript, node.js)
- Host: GitHub
- URL: https://github.com/enricostara/telegram.link
- Owner: enricostara
- License: mit
- Created: 2014-09-02T12:19:28.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2023-07-14T21:18:11.000Z (over 1 year ago)
- Last Synced: 2024-07-31T12:07:25.956Z (3 months ago)
- Language: JavaScript
- Homepage: www.telegram.link
- Size: 766 KB
- Stars: 334
- Watchers: 22
- Forks: 63
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-telegram-bots - telegram.link - 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 and API (Libraries / Node.js)
- awesome-telegram - telegram.link
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