Hacker News new | past | comments | ask | show | jobs | submit login

As someone who’s worked on Telegram clients for years, I can assure you that the protocol isn’t open. It’s quite opaque, and the FOSS thing is mostly a facade.



I mean the protocol is documented enough to create an implementation of it from scratch - that meets the metric of open.

I suspect there is enough implementation there to write a server implementation too, at least a simple one.


I mean the protocol is documented enough to create an implementation of it from scratch

It's not. If you want to write your own, you have to reverse engineer most of the protocol. The clients aren't fully open source, and when they are, the public code usually lags behind the actual binaries that are released, often by months. It's nearly impossible to write a client that keeps up with the features in Telegram.

You may be thinking of the bot API documentation, which is documented. Many bots don't use that, though, as it's very limiting.

I suspect there is enough implementation there to write a server implementation too, at least a simple one.

The servers behave in very strange, unexpected ways, and the official clients expect these quirks. Most of the third-party clients either use TDLib, which is official and not fully open source, or have also grown to expect these quirks.

Just as a quick example, pretty much everything in Telegram has a numeric ID. Clients, bots, etc. have come to expect that IDs within certain ranges represent certain objects--users have a range, private chats have a range, channels have a range. These ranges aren't documented and may not be obvious even in a fully open source client, but if you don't adhere to them, stuff will break.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: