2
0
mirror of https://github.com/pyrogram/pyrogram synced 2025-08-29 13:27:47 +00:00

Add Fast Crypto (TgCrypto) docs

This commit is contained in:
Dan 2018-02-08 16:50:04 +01:00
parent 5d5c2fe928
commit a398249067
2 changed files with 108 additions and 7 deletions

View File

@ -3,16 +3,77 @@ Welcome to Pyrogram
.. raw:: html
<p align="right">
<a class="github-button" href="https://github.com/pyrogram/pyrogram/subscription" data-icon="octicon-eye" data-size="large" data-show-count="true" aria-label="Watch pyrogram/pyrogram on GitHub">Watch</a>
<a class="github-button" href="https://github.com/pyrogram/pyrogram" data-icon="octicon-star" data-size="large" data-show-count="true" aria-label="Star pyrogram/pyrogram on GitHub">Star</a>
<a class="github-button" href="https://github.com/pyrogram/pyrogram/fork" data-icon="octicon-repo-forked" data-size="large" data-show-count="true" aria-label="Fork pyrogram/pyrogram on GitHub">Fork</a>
</p>
<div align="center">
<a href="https://pyrogram.ml">
<img src="https://pyrogram.ml/images/logo2.png" alt="Logo">
<div><img src="https://pyrogram.ml/images/icon.png" alt="Pyrogram Icon"></div>
<div><img src="https://pyrogram.ml/images/label.png" alt="Pyrogram Label"></div>
</a>
</div>
<p align="center">
<b>Telegram MTProto API Client Library for Python</b>
<br>
<a href="https://github.com/pyrogram/pyrogram/releases/latest">
Download
</a>
<a href="https://github.com/pyrogram/pyrogram">
Source code
</a>
<a href="https://t.me/PyrogramChat">
Community
</a>
<br><br>
<a href="https://github.com/pyrogram/pyrogram/blob/master/compiler/api/source/main_api.tl">
<img src="https://www.pyrogram.ml/images/scheme.svg"
alt="Scheme Layer 75">
</a>
<a href="https://core.telegram.org/mtproto">
<img src="https://www.pyrogram.ml/images/mtproto.svg"
alt="MTProto v2.0">
</a>
</p>
About
-----
Pyrogram is a fully functional Telegram Client Library written from the ground up in Python.
It offers **simple** and **complete** access to the Telegram Messenger API and is designed for Python developers
keen on building custom Telegram applications.
Features
--------
- **Easy to setup**: Pyrogram can be easily installed and upgraded using **pip**, requires
a minimal set of dependencies (which are also automatically managed) and very few lines
of code to get started with.
- **Easy to use**: Pyrogram provides idiomatic, developer-friendly, clean and readable
Python code (either generated or hand-written) making the Telegram API simple to use.
- **High level**: Pyrogram automatically handles all the low-level details of
communication with the Telegram servers by implementing the
`MTProto Mobile Protocol v2.0`_ and the mechanisms needed for establishing
a reliable connection.
- **Fast**: Pyrogram's speed is boosted up by `TgCrypto`_, a high-performance, easy-to-install
crypto library written in C.
- **Updated**: Pyrogram makes use of the latest Telegram API version, currently `Layer 75`_.
- **Documented**: Pyrogram API public methods are documented and resemble the well
established Telegram Bot API, thus offering a familiar look to Bot developers.
- **Full API support**: Beside the simple, bot-like methods offered by the Pyrogram API,
the library also provides a complete, low-level access to every single Telegram API method.
Preview
-------
@ -28,12 +89,6 @@ Preview
client.stop()
About
-----
Welcome to the Pyrogram's documentation! Here you can find resources for learning how to use the library.
Contents are organized by topic and are accessible from the sidebar.
To get started, press Next.
.. toctree::
@ -51,6 +106,9 @@ To get started, press Next.
resources/TextFormatting
resources/UpdateHandling
resources/ErrorHandling
resources/ProxyServer
resources/AutoAuthorization
resources/FastCrypto
.. toctree::
:hidden:
@ -64,3 +122,9 @@ To get started, press Next.
functions/index
types/index
.. _`MTProto Mobile Protocol v2.0`: https://core.telegram.org/mtproto
.. _TgCrypto: https://docs.pyrogram.ml/resources/FastCrypto/
.. _`Layer 75`: https://github.com/pyrogram/pyrogram/blob/master/compiler/api/source/main_api.tl

View File

@ -0,0 +1,37 @@
Fast Crypto
===========
Pyrogram's speed can be *dramatically* boosted up by installing TgCrypto_, a high-performance, easy-to-install crypto
library specifically written in C for Pyrogram [#f1]_. TgCrypto is a replacement for the painfully slow PyAES and
implements the crypto algorithms MTProto requires, namely AES-IGE and AES-CTR 256 bit.
Installation
------------
.. code-block:: bash
$ pip install --upgrade tgcrypto
.. note:: Being a C extension for Python, TgCrypto is an optional but *highly recommended* dependency; when TgCrypto
is not detected on your system, Pyrogram will automatically fall back to PyAES and will show you a warning.
The reason about being an optional package is that TgCrypto requires some extra system tools in order to be compiled.
Usually the errors you receive when trying to install TgCrypto are enough to understand what you should do next.
- **Windows**: Install `Visual C++ 2015 Build Tools <http://landinghub.visualstudio.com/visual-cpp-build-tools>`_.
- **macOS**: A pop-up will automatically ask you to install the command line developer tools as soon as you issue the
installation command.
- **Linux**: Depending on your distro, install a proper C compiler (``gcc``, ``clang``) and the Python header files
(``python3-dev``).
- **Termux (Android)**: Install ``clang`` and ``python-dev`` packages.
More help on the `Pyrogram group chat <https://t.me/PyrogramChat>`_.
.. _TgCrypto: https://github.com/pyrogram/tgcrypto
.. [#f1] Although TgCrypto is intended for Pyrogram, it is shipped as a standalone package and can thus be used for
other projects too.