From a398249067f90832d5ad77eee7a44d11a23ce751 Mon Sep 17 00:00:00 2001
From: Dan <14043624+delivrance@users.noreply.github.com>
Date: Thu, 8 Feb 2018 16:50:04 +0100
Subject: [PATCH] Add Fast Crypto (TgCrypto) docs
---
docs/source/index.rst | 78 +++++++++++++++++++++++++---
docs/source/resources/FastCrypto.rst | 37 +++++++++++++
2 files changed, 108 insertions(+), 7 deletions(-)
create mode 100644 docs/source/resources/FastCrypto.rst
diff --git a/docs/source/index.rst b/docs/source/index.rst
index a45efa74..dfa6d67e 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -3,16 +3,77 @@ Welcome to Pyrogram
.. raw:: html
+
+ Watch
+ Star
+ Fork
+
+
Telegram MTProto API Client Library for Python
+
+
+ Download
+
+ •
+
+ Source code
+
+ •
+
+ Community
+
+
+
+
+
+
+
+
+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
\ No newline at end of file
diff --git a/docs/source/resources/FastCrypto.rst b/docs/source/resources/FastCrypto.rst
new file mode 100644
index 00000000..0cefd146
--- /dev/null
+++ b/docs/source/resources/FastCrypto.rst
@@ -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 `_.
+
+- **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 `_.
+
+.. _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.
\ No newline at end of file