#######
aiogram
#######

.. danger::
    This version still in development!

.. image:: https://img.shields.io/pypi/l/aiogram.svg
    :target: https://opensource.org/licenses/MIT
    :alt: MIT License

.. image:: https://img.shields.io/pypi/pyversions/aiogram.svg
    :target: https://pypi.python.org/pypi/aiogram
    :alt: Supported python versions

.. image:: https://img.shields.io/badge/Telegram%20Bot%20API-5.2-blue.svg?logo=telegram
    :target: https://core.telegram.org/bots/api
    :alt: Telegram Bot API

.. image:: https://github.com/aiogram/aiogram/workflows/Tests/badge.svg?branch=dev-3.x
    :target: https://github.com/aiogram/aiogram/actions
    :alt: Tests

.. image:: https://img.shields.io/pypi/v/aiogram.svg
    :target: https://pypi.python.org/pypi/aiogram
    :alt: PyPi Package Version

.. image:: https://img.shields.io/pypi/status/aiogram.svg
    :target: https://pypi.python.org/pypi/aiogram
    :alt: PyPi status

.. image:: https://img.shields.io/pypi/dm/aiogram.svg
    :target: https://pypi.python.org/pypi/aiogram
    :alt: Downloads

.. image:: https://img.shields.io/badge/telegram-aiogram-blue.svg
    :target: https://t.me/aiogram_live
    :alt: [Telegram] aiogram live


**aiogram** modern and fully asynchronous framework for
`Telegram Bot API <https://core.telegram.org/bots/api>`_ written in Python 3.7 with
`asyncio <https://docs.python.org/3/library/asyncio.html>`_ and
`aiohttp <https://github.com/aio-libs/aiohttp>`_.

It helps you to make your bots faster and simpler.


.. danger::

    **Breaking News:**

    *aiogram* 3.0 has breaking changes.

    It breaks backwards compatibility by introducing new breaking changes!

Features
========

- Asynchronous (`asyncio docs <https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)
- Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-lang.org/>`_
- Supports `Telegram Bot API <https://core.telegram.org/bots/api>`_ |api_version|
- Telegram Bot API integration code was `autogenerated <https://github.com/aiogram/tg-codegen>`_ and can be easy re-generated when API was updated
- Updates router (Blueprints)
- Finite State Machine
- Middlewares
- Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-to-updates>`_

.. warning::

    Before start using **aiogram** is highly recommend to know how to work
    with `asyncio <https://docs.python.org/3/library/asyncio.html>`_.

    Also if you has questions you can go to our community chats in Telegram:

    - `English language <https://t.me/aiogram>`_
    - `Russian language <https://t.me/aiogram_ru>`_

Simple usage
------------

.. literalinclude:: ../examples/echo_bot.py

Contents
========

.. toctree::
    :maxdepth: 3

    install
    api/index
    dispatcher/index
