Ferogram
7 subscribers
1 photo
7 links
High-performance Telegram MTProto framework written in Rust for building powerful Telegram clients, apps, and bots. > @FerogramChat

Repository: https://github.com/ankit-chaubey/ferogram
Docs: https://ferogram.ankitchaubey.in
Download Telegram
What's ferogram?

High-performance Telegram MTProto framework written in Rust for building powerful Telegram clients, apps, and bots.

Official: @Ferogram, @FerogramBot & @FerogramChat

Docs: docs.rs/ferogram

Repository: github.com/ankit-chaubey/ferogram

Quick Guide: ferogram.ankitchaubey.in

Ferogram API Docs(raw): https://tgapis.github.io/x/ferogram
By Telegram API schema tracker

Development will progress slowly over time.
Currently in a pre-production stage.
🔥32
🚀 ferogram v0.3.0 is released

This is one of the biggest updates so far.

Around 15k+ lines changed, 2 new crates added, ~95 new public APIs, major bug fixes, stronger MTProto stability, better session handling, and full CDN download support.

• Added ferogram-session crate for session persistence
• Added ferogram-parsers crate for Markdown + HTML parsing
• Full CDN download support with decryption + reassembly
• Transport probing for automatic best transport selection
• Resilient connect with DNS-over-HTTPS fallback + Telegram special-config recovery
• New ExperimentalFeatures support in ClientBuilder
• Session format upgraded to v5 with much stronger persistence
• Many MTProto fixes, reconnect improvements, and internal cleanup
• Large docs expansion with new advanced guides + API references

This release makes ferogram much more stable and production-ready.

Please read CHANGELOG.md for full details
GitHub: github.com/ankit-chaubey/ferogram
🔥21
Ferogram v0.3.3 Is out

bot framework layer: filters, FSM, middleware, conversation API
#[derive(FsmState)]

via new ferogram-derive crate · composable predicates with &/|/! · per-user/chat state with typed data storage · rate limit + panic recovery middlewares out of the box · stateful peer conversations with deadlines

new example: examples/order_bot.rs

TODO: now all works will be made towards making ferogram more stable and bug fixes.
🔥21
Initial public release of Ferogram Python bindings, powered by the Rust MTProto core.

This release includes async client support, user and bot login, session handling, message sending, media support, update handlers, and raw MTProto access.

Available on PyPI with pre-built as well as source build support for Termux and other unsupported platforms.

https://pypi.org/project/ferogram/
2🎉2👍1
🚀 ferogram v0.3.5 released

Focused on stability, safer update recovery, and cleaner startup for long-running MTProto clients.

Changes
• Fixed PollResults deserialization causing update parsing issues and state desync
• Fixed getDifference() self-deadlock during recovery
• Prevented duplicate concurrent recovery calls
• Removed automatic getDialogs() startup prefetch for faster startup
• Switched to lazy peer cache resolution with persisted peer cache
• Added optional warmup API:
client.warm_peer_cache_from_dialogs().await?;

Recommended update for userbots and production clients → v0.3.5
2🔥2
🚀 ferogram v0.3.6 released

This update focuses on giving the high-level APIs their final shape before v0.4.0.

Some APIs have been simplified, merged, or removed where redundant. This may require a one-time migration, but ensures a cleaner experience with no overlapping methods going forward.

Once stabilized, future updates will focus on new features and improvements without disruptive API changes.
4
v0.3.7 is out 🦀

Three new crates this release ferogram-connect, ferogram-fsm and ferogram-mtsender are now standalone crates.

The main ferogram crate re-exports everything so nothing breaks.

New: PeerExt and OptionPeerExt give you .bare_id() to pull a numeric ID out of any Peer without writing a match every time. PeerCache is now fully public.
ExperimentalFeatures adds allow_zero_hash for bots.

Breaking:
· download_media_to_file → download_file
· forward_messages now takes a ForwardOptions fourth arg
· respond_ex removed respond already accepts InputMessage

cargo add ferogram@0.3.7
2👍1🔥1
🚀 ferogram-py v0.2.0 Released

The Python bindings for ferogram have been updated to v0.2.0.

📦 Installation
pip install ferogram==0.2.0

🔄 Changes
Bumped Rust core from v0.3.7 → v0.3.8

Fixed bugs introduced during refactoring
Corrected methods that previously had incorrect implementations (wrong function bodies swapped)
3👍1🔥1
Ferogram v0.3.9 is out 🦀

Layer 225 support, a cleaner poll API, guest-chat support for bots and proper MarkdownV2 parsing.
(what's guest-chat?)

Breaking
send_poll now uses PollBuilder
parse_markdown now follows strict MarkdownV2

New
Better PollBuilder with quiz mode, auto-close, shuffle, solutions and more

Update::GuestChatQuery support for guest bots

delete_reaction(peer, msg_id, participant)
get_poll_stats(peer, msg_id)
BannedRights::send_reactions

HTML parser now supports <blockquote>, <tg-time>, <ins> and more

Fixed duplicate entities in
<pre><code class="language-X">
3🔥1
Ferogram
Ferogram v0.3.9 is out 🦀

Layer 225 support, a cleaner poll API, guest-chat support for bots and proper MarkdownV2 parsing.
(what's guest-chat?)
Released v0.4.0

Becoz .. 0.3.9 was a broken publish. the workspace internal deps were not bumped so crates.io resolved ferogram-tl-types to the old Layer 224 build.

0.4.0 fixes that and is the correct release to use.
0.4.0 is considered as the production-ready release of ferogram. It ships Layer 225 support and a reworked poll API.
All users are advised to upgrade to 0.4.0 (or 0.4.x+) as the most recommended and supported version.

If you run into any bugs, please open an issue on GitHub or reach us at @FerogramChat

Thank you for using ferogram!

For the latest git revision: https://github.com/ankit-chaubey/ferogram

Also ferogram-py python binding for ferogram upgraded to v0.2.1
1
ferogram v0.4.1 and ferogram-py v0.2.3 are out.

ferogram
• Client::quick_connect for full auth in one call
• Configurable update buffering
• low_memory_mode for Termux
• Auto session saving
• Salt overflow fix
• 15 new examples

ferogram-py
• 20 new Client(...) kwargs
• Full inline result fields exposed
• 10 new participant methods
• Added delete_reaction and get_poll_results

GitHub: github.com/ankit-chaubey/ferogram
PyPI: pypi.org/project/ferogram
2
Raw API docs for ferogram are now live!

Browse all TL constructors, types, and functions with examples:
https://tgapis.github.io/x/ferogram

Also check the main index for Bot API, TL schemas, diffs, and more:
https://tgapis.github.io/x

Updates automatically every 5 hours.
3👍1🔥1
Ferogram v0.6.0 & Ferogram Python v0.4.1 Released

If you've gone through the codebase.. you've probably noticed that new versions of both the Rust core and Python bindings have been released

So let's cover what's new!

📦 Ferogram v0.6.0

This release focuses on performance & stability as well improved dev experience.
• Improved overall performance and reduced runtime overhead
• Enhanced client lifecycle and connection handling
• Better serialization and dispatch pipeline efficiency
• Optimized HTTP client internals
• Various bug fixes and stability improvements
• Internal refactoring and codebase cleanup
• Documentation and project maintenance updates


🐍 Ferogram Python v0.4.1

This release is mostly about making the library easier to use, more flexible and more stable under load.
What's new?
• New session backend system with support for SQLite, libSQL/Turso, in-memory sessions, string sessions, and custom backends
• Reworked update handling using a fixed worker pool and bounded queue for predictable memory usage and proper backpressure
• Global parse_mode support configurable directly on the client
• More flexible handler dispatching with groups, runtime registration/removal, and propagation control
• Upload and download progress callbacks
• New channel type helpers on Message
• Multiple performance improvements
• Upgraded the Rust core to Ferogram v0.6.0

As always, thanks to everyone using Ferogram, reporting issues, opening discussions and suggesting improvements ❤️
2