OCaml API для Telegram

Библиотека TDlib является реализацией API Telegram на С++ и позволяет создавать альтернативные клиенты для Telegram. Сама библиотека написана на С++, а также содержит описание API Telegram, по которому можно автоматически генерировать "обвязку" для языков, отличных от С++.

Цель работы: реализовать интерфейс между имеющимся кодом на С++ и OCaml, чтобы получить возможности написания альтернативных клиентов или каких-либо автоматических агрегаторов на языке OCaml. Конкретнее:

  • Надо разобраться с описанием API: что это за формат (ad hoc или общеизвестный), как из него генерируются обвязки для других языков.
  • Необходимо разобраться с демкой. Там вручную написана некоторая неполная обвязка и сделано приложение (на основе официального примера), которое может вопрошать у API Telegram кое-чего.
  • В MVP из предыдущего пункта всюду использовались обычные алгебраические типы для видов сообщений. Возможно, использование OCaml-овских полиморфных вариантов в некоторых местах будет удобнее. Поэтому, генератор "обвязки" надо делать так, чтобы легко было изменить представление данных на стороне OCaml (сейчас для этого применены макросы С++)
  • В конце предлагается сделать новый MVP 2.0, но не такой минимальный. А именно
  • Реализовать слушатель некоторых каналов/чатов телеграм, сообщения должны складировать в базу.
  • MVP 2.0 должен складировать сообщения в локальную базу, чтобы отслеживать изменения/исправления и удаления сообщений.

Вполне себе курсовая на полгода. Не публикабельно.

Уровень

2 курс, 3 курс


Руководитель

Косарев Дмитрий Сергеевич


Консультант

Косарев Дмитрий Сергеевич


Источник

От себя лично