Flutter plugin (Android)
Packaged as an Android FFI Flutter plugin with bundled native libraries.
Maintained Flutter/Dart bindings for TDLib's libtdjson interface on Android — rooted in a production Follow Pay requirement.
handy_tdlib_next is a community-maintained Flutter/Dart package providing bindings for Telegram's TDLib JSON interface (libtdjson). It is intended for Flutter applications that need to communicate with TDLib to build Telegram clients or integrate TDLib functionality.
The package exposes generated Dart models for TDLib functions and objects, FFI access to libtdjson through TdPlugin, and helpers to parse TDLib JSON into typed Dart objects. On Android, prebuilt libtdjson.so libraries are shipped with the plugin so consumers do not need to build TDLib themselves for that platform.
handy_tdlib_next did not start as a purely experimental package. It originated from a production problem while building Follow Pay: a Telegram-related verification flow that needed to stay inside the app rather than sending users outside.
Existing Flutter/Telegram libraries did not provide the reliability needed for that in-app flow. After researching handy_tdlib at the implementation level — how it bound Dart to TDLib/libtdjson — I developed a working patch/adaptation around it and used that patched implementation in Follow Pay production for approximately one year.
Later, noticing that developers were still downloading the original handy_tdlib package while needing a maintained Flutter TDLib integration, I published the maintained work as handy_tdlib_next. It is independently maintained under a new package name — a community-maintained fork lineage, not an official continuation of handy_tdlib, and not affiliated with Telegram, TDLib, Naji, or HandyGram.
Read the production origin story in the Follow Pay case study →
Follow Pay needed Telegram-related verification inside the app.
Multiple Flutter/Telegram options were tried; none reliably fit the required flow.
Deeper TDLib/libtdjson investigation led to a working adaptation.
The patched implementation ran in Follow Pay before any public package release.
Continued demand around handy_tdlib motivated publishing a maintained package.
Community-maintained Flutter TDLib integration on Android via Dart FFI.
Requests flow from your Flutter app through typed Dart models and TdPlugin, across Dart FFI, into bundled libtdjson.so, and finally into TDLib.
Your app drives TDLib client creation, requests, and updates.
Generated TdFunction and TdObject types plus JSON helpers.
Dart entrypoint for initialize, send, receive, and execute.
Foreign Function Interface bridging Dart to the native library.
Bundled Android TDLib JSON client dynamic library.
Telegram Database Library v1.8.36 behind the JSON interface.
Packaged as an Android FFI Flutter plugin with bundled native libraries.
TdPlugin wraps libtdjson calls such as td_create_client_id, td_send, td_receive, and td_execute.
Typed functions and objects generated from the TDLib scheme for a sealed Dart 3-friendly surface.
convertJsonToObject and convertMapToObject parse TDLib JSON into typed TdObject values.
TdPlugin.initialize([String? libPath]) can load a non-default native library when needed.
armeabi-v7a, arm64-v8a, x86, and x86_64 libtdjson.so builds are included.
Requires Dart SDK >=3.3.0 <4.0.0 and Flutter >=3.15.0.
Bundled libtdjson corresponds to TDLib 1.8.36 as recorded in the package metadata.
minSdkVersion 21 and compileSdkVersion 34 in the plugin Android configuration.
Supported: Android
The package currently ships Android libtdjson.so libraries for armeabi-v7a, arm64-v8a, x86, and x86_64. Consumers do not need to build TDLib themselves for those ABIs.
iOS, Web, Windows, macOS, and Linux are not declared or supported by the current plugin configuration.
If your Flutter project previously depended on handy_tdlib, you can move to handy_tdlib_next by changing the package dependency and imports, then validating Android and TDLib behavior. handy_tdlib_next is independently maintained and is not presented as an official continuation of the original project.
If you have a Flutter project that previously depended on handy_tdlib and need a maintained package under a new package name, handy_tdlib_nextprovides Flutter/Dart bindings around TDLib's libtdjson interface for Android.
It is an independent community-maintained project and is not an official Telegram, TDLib, Naji, or HandyGram release.
handy_tdlib_next is a community-maintained Flutter/Dart package that provides bindings for Telegram's TDLib JSON interface (libtdjson), aimed at building Telegram clients or integrating TDLib features on Android.
It originated from a production Telegram verification requirement in Follow Pay. After evaluating existing Flutter/Telegram libraries, Abdul Moiz Dev investigated handy_tdlib, developed a working patch, used it in production for about a year, and later published the maintained work as handy_tdlib_next.
Yes. It is a Flutter plugin with a Dart API that talks to TDLib through libtdjson using Dart FFI, including generated TDLib functions and objects.
Yes. Android is the supported plugin platform. The package ships prebuilt libtdjson.so libraries for common Android ABIs.
TDLib 1.8.36 (bundled libtdjson as documented in the package).
Yes. TdPlugin uses Dart FFI to call into libtdjson.so for client creation, send, receive, and execute operations.
Yes, as a dependency and import rename to handy_tdlib_next, followed by careful API review and Android/TDLib regression testing. It is independently maintained and not presented as an official continuation of handy_tdlib.
No. It is an independent community package maintained by Abdul Moiz Dev. It is not an official Telegram or TDLib package, and it is not affiliated with, endorsed by, or maintained by Telegram, the TDLib project, Naji, or HandyGram unless those parties state otherwise.
Abdul Moiz Dev (@itxmoizdev).
Yes for Android. Prebuilt libtdjson.so libraries are bundled under the plugin's jniLibs so consumers do not need to build TDLib themselves for supported Android ABIs.
No. The current plugin configuration declares Android only. iOS, Web, Windows, macOS, and Linux are not declared or supported in this package.
Maintained by Abdul Moiz Dev (@itxmoizdev).