Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tlo

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tlo

Reader of binary serialized Type Language Schema

  • 1.0.1
  • PyPI
  • Socket score

Maintainers
1

Type Language Object

Reader of binary serialized Type Language Schema

Example of result in the end of reading TLO

demo

Declaimer

This code has not been tested sufficiently. It's a rewritten version of original reader in C++. If you are going to use this for code generation, please do additional tests. Recheck my implementation for errors and so on.

Context

The Type Language (TL) was invented many years ago. It was originally used in VK, and now in Telegram. The creators of this language invented and wrote all the necessary tools to work with it. For example, a parser of the language and its binary format for serialization was developed.

What is this for?

To work with TL Schemes using OOP. To generate the client MTProto code using official TL parsers and binary formats.

Many Open Source MTProto client use their own implementation of parsers, which are not ultimatum. They are hardcoded for their minimal task.

Hardcode is not the way of Telegram. Official Telegram's Open Source projects take the right approach. So, for example, tdlib generates several interfaces for different languages and this is how it looks:

Raw TL Schema -> Tl Parser -> binary TL Object -> TLO reader -> code generator.

Step nameDescription
Raw TL SchemaCan be founded here and in official Telegram repositories of client (tdesktop/Telegram/Resources/tl, tdlib/generate/scheme).
Tl ParserOfficial TL parser written in C++. Now it's a part of tdlib/td/generate/tl-parser. In the input it takes raw TL schema file. The output is TLO file.
binary TL ObjectThe output of Tl Parser.
TLO readerThis repository contains implementation of it in Python and JavaScript. Reader of binary file. Provide access to combinators, types, functions, arguments and so on via Object Oriented Programming.
code generatorAny code generator. In tdlib/td/generate there is generator for C++, JNI, .NET and JSON interfaces.

Installing

For Python
pip install tlo
For JavaScript Work in progress
npm install tlo

Usage

You can find TLO files for tests here.

Python (3.6+)
from tlo import read_tl_config_from_file, read_tl_config


# use read_tl_config(data) to pass bytes directly
config = read_tl_config_from_file('td_api.tlo')
JavaScript Work in progress
import {read_tl_config_from_file, read_tl_config} from 'tlo';


// use read_tl_config(data) to pass bytes directly
const config = read_tl_config_from_file('td_api.tlo')

Licence

MIT License

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc