Hydrogram vs Pyrogram
=====================
Introduction
------------
This is a non-exhaustive list of differences between Hydrogram and Pyrogram.
It is updated periodically.
Key changes
-----------
- Support for the latest MTProto API layer with all new Telegram features
- Support for threads and topics in Telegram groups
- Support for multiple usernames.
- More active development
- Completely refactored, optimized and modernized codebase (utilizing Ruff)
- Open-source documentation
- Adopt modern packaging technologies and standards, such as pyproject.toml
- Use aiosqlite instead of sqlite3 for storage handling.
- Added the property `full_name` for User and Chat objects.
- Added the possibility to define a custom storage class
More technical changes
----------------------
- Declared the special variable `__all__` in all files so now we have a better IDE support.
- Specify optional parameters in methods as keyword-only to prevent potential breakage in the future when introducing new parameters.
- Migrated from setuptools to `hatchling `_ with `uv `_.
- Transitioned from using `os.path` to utilizing `Pathlib`.
- Start utilizing towncrier to generate changelogs.
Fixes
-----
- Add FloodWait exception to media download
- Fixed a bug that would treat `0`, `False` or `None` as an empty message
- Fixed minor code issues