ferogram-connect
Raw TCP connection, MTProto framing, and transport layer for ferogram.
Handles everything between a TcpStream and a decrypted MTProto message. The ferogram crate sits on top of this; most users never touch it directly.
ferogram re-exports everything here. Existing code needs no changes.
Installation
[]
= "0.3.8"
What it does
Takes a raw TCP connection to a Telegram DC and gives back decrypted, framed MTProto messages.
- Abridged, Intermediate, Padded Intermediate, and Full transport framing
- Obfuscated2 AES-256-CTR transport for bypassing DPI and MTProxy
- FakeTLS transport for
0xeeMTProxy secrets - SOCKS5 proxy support
- MTProxy (
tg://proxy?...andhttps://t.me/proxy?...) connection and secret parsing - Keepalive pings with configurable interval
- gzip inflate and compress for MTProto containers
- MTProto envelope unwrapping and entity extraction
Transports
use TransportKind;
// Plain abridged (default)
Abridged
// Obfuscated2: bypasses ISP blocks, works with plain MTProxy secrets
Obfuscated
// Padded Intermediate: required for 0xdd MTProxy secrets
PaddedIntermediate
// FakeTLS: required for 0xee MTProxy secrets
FakeTls
MTProxy
use MtProxyConfig;
// Parse a proxy link directly
let proxy = parse_proxy_link?;
// Or build manually
let proxy = MtProxyConfig ;
SOCKS5
use Socks5Config;
let socks = new;
let socks_auth = with_auth;
Stack position
ferogram
└ ferogram-mtsender
└ ferogram-connect <-- here
├ ferogram-mtproto
└ ferogram-crypto
License
MIT or Apache-2.0, at your option. See LICENSE-MIT and LICENSE-APACHE.
Ankit Chaubey - github.com/ankit-chaubey