This is a non-exhaustive list of differences between Hydrogram and Pyrogram. It is updated periodically.
- 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
- 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.
- Add FloodWait exception to media download
- Fixed a bug that would treat 0, False or None as an empty message
- Fixed minor code issues