MadelineProto can do everything official clients can do, and more!
It allows you to do everything official clients can do, programmatically!
It is fully async!
It can make phone calls! See here for instructions
It can be proxied (MTProxy, HTTP, socks5 and more)!
It is very fast!
It can be easily serialized!
It featured update handling with callbacks or long polling!
Easy to use wrappers to upload/download files and call mtproto methods
Documentation for EVERY mtproto method!
Internal peer management: you can provide a simple bot API chat id or a username to send a message or to call other mtproto methods!
You can easily login as a user (2FA is supported) or as a bot!
Simple error handling!
It is highly customizable with a lot of different settings!
Bot API file id/object support (even for users)!
A Lua binding
A lua wrapper for td-cli scripts
PFS in secret chats