Skip to content

enricostara/telegram.link

Repository files navigation

telegram.link

npm version Build Status Coverage Status Climate Status Dependency Status Sauce Test Status

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 runtime)

telegram.link is an unofficial porting in javascript of the Telegram Application Programming Interface.

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 and API.

Telegram.link in action!

To start with the telegram.link library, you can install and study the Termgram 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

See the project status page on the wiki for the last notes.

Documentation

The api documentation is generated under the doc/ folder.

See the documentation page on the wiki.

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 (dependency): implements the Telegram Mobile Protocol (MTProto), the protocol level to establish a secure communication with the Telegram cloud.

  • telegram-tl-node (dependency): implements the core TypeLanguage types and a TypeBuilder class that writes Type classes and functions in pure javascript parsing TypeLanguage schemas. TypeLanguage types represent the building blocks of the Telegram protocol.

Other direct dependencies

  • get-flow: just yet another Node.js flow control utility, powerful and easy to use

  • get-log: a Node.js logging utility, easy to use and ready for production environment.

  • 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:

$ 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!):

$ cd YourApp
$ npm install --save telegram.link

Unit Testing

You can run unit-test executing the following command in the project-root folder:

$ npm test

About Telegram..

Telegram 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).

About Node.JS..

Node.js 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).

About the telegram.link logo ..

Logo crafted by Diego Pasquali

License

The project is released under the MIT license

About

Telegram API library (javascript, node.js)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •