Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

rstgcalls

Источник: dev/fera/rstgcalls/README.md (read-only; сгенерировано scripts/sync-docs.mjs)

Rust FFI bindings to tgcalls — Telegram’s calling stack (WebRTC via C++) — for voice/video calls and streams in Fera.

Pre-code. This repo will hold the binding crate. The C++ base itself is not vendored here: it lives in our tgcalls fork, pulled in as a git submodule — the org’s repo tree is recursive by design, same pattern as the rest of the ecosystem.

rstgcalls (this repo — Rust bindings)
└── tgcalls/ (submodule → the-fera/tgcalls, fork of TelegramMessenger/tgcalls)

Telegram’s calling stack is not a documented, stable public protocol like MTProto itself. Reimplementing from scratch carries high risk of breakage on undocumented protocol changes — so the initial release line ships the official tgcalls via C++ FFI, isolated to the calling module specifically (the rest of Fera’s stack avoids C/C++ dependencies).

A from-scratch pure-Rust reimplementation is a deferred long-term goal, tracked separately under the reserved name re:call — not this repo. This crate’s name stays honest: Rust bindings to tgcalls.

  • Safe Rust wrappers over the tgcalls C++ API surface Fera needs: call setup/teardown, audio/video streams, signaling hooks over MTProto (via grmrs).
  • Fera’s calls-tgcalls nylon-ring module is built on top of this crate — bindings stay UI/runtime-agnostic.

Pre-code. Upstream: tgcalls (LGPL-3.0) — licensing implications of linking are assessed before the first release.

Team: recall — repo access is granted through the team.

TBD — decided before the first public release. Upstream tgcalls’ LGPL-3.0 terms apply to the submodule base.