Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots
Project description
wzgram
Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots
wzgram is a drop-in replacement for Pyrogram — your existing from pyrogram import ... code works without changes, with access to the latest Telegram features including Gifts, Stories, Topics, Business Accounts, and more.
from pyrogram import Client, filters
app = Client("my_account")
@app.on_message(filters.private)
async def hello(client, message):
await message.reply("Hello from wzgram!")
app.run()
wzgram is a modern, elegant and asynchronous MTProto API framework. It enables you to easily interact with the main Telegram API through a user account (custom client) or a bot identity (bot API alternative) using Python.
Key Features
- Drop-in Replacement — Use
from pyrogram import ...; existing codebases migrate with zero import changes. - Up-to-Date — Supports Gifts, Stories, Topics, Business Accounts, Giveaways, and the latest Telegram layer.
- Async Natively — Fully
async/awaitthroughout. Also usable synchronously viaapp.run()for convenience. - Type-hinted — Every type and method is annotated for excellent editor support.
- Fast — Boosted by WarpCrypto, a high-performance cryptography library written in Rust.
- Powerful — Full access to Telegram's API for any official client action and more.
Example with Inline Keyboard
from pyrogram import Client, filters
from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton
app = Client("my_bot")
@app.on_message(filters.command("start"))
async def start(client, message):
await message.reply(
"Choose an option:",
reply_markup=InlineKeyboardMarkup([
[
InlineKeyboardButton("Website", url="https://example.com"),
InlineKeyboardButton("Help", callback_data="help"),
],
[InlineKeyboardButton("About", callback_data="about")],
])
)
app.run()
Installing
pip install wzgram
For better performance:
pip install wzgram[fast]
Development
# Clone the repo
git clone https://github.com/rjriajul/wzgram
cd wzgram
# Install uv (if not already)
pip install uv
# Create virtual environment with dev dependencies
uv sync --frozen --extra dev
# Generate TL API types
uv run poe api
# Run tests
uv run poe test
Documentation
Full documentation at https://rjriajul.github.io/wzgram
Resources
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wzgram-3.0.18.tar.gz.
File metadata
- Download URL: wzgram-3.0.18.tar.gz
- Upload date:
- Size: 657.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e80d716d53462263de05d5f55528e7352262b09e800018c2d28dbcbd0447799a
|
|
| MD5 |
d726dcf21ca3c082465842de3226a454
|
|
| BLAKE2b-256 |
2c8ee16f7e5828c4d0cacfbdb717e9d0399ec4da4e45a051231fd1b98a9ce695
|
File details
Details for the file wzgram-3.0.18-py3-none-any.whl.
File metadata
- Download URL: wzgram-3.0.18-py3-none-any.whl
- Upload date:
- Size: 5.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4240dace13154092504718e900e1956866ddd0f659b24bfffccf3714532d2f4
|
|
| MD5 |
66d0b5462fffd097cbf691db242b0f32
|
|
| BLAKE2b-256 |
707927acb670f0093cba73338ae3a39a712c5e8339f20d3eb89bdb7afc86b07b
|