f4xp1

11 ms rtt

github.com/marwy/f4xp1

TRANSPORT · QUIC · E2E

f4xp1 Messenger

f4xp1 (fuck_speed) — это ультралегкий кроссплатформенный мессенджер на Rust, построенный вокруг QUIC-транспорта, zero-copy сериализации rkyv и сквозного шифрования (E2E) с прямой P2P-передачей файлов.

Все сборки и контрольные суммы — на странице последнего релиза f4xp1 на GitHub. Установка не требует рантайма: один бинарник, без Node.js и без встроенного браузера.


Интерфейс как прибор, а не как веб-страница

Ни пузырей вокруг сообщений, ни теней, ни градиентов. Зоны разделены фоном и воздухом, цвет остаётся только у чисел и статусов, а всё живое — задержка, доставка, чанки передачи — нарисовано тиками шириной 3 px.

core lena ПерейтиCtrl+K 11 ms

Каналы

general

quic-транспорт7

релизы

оффтоп

В эфире23:41

созвон3

Aarseny

Llenamic

Ddima

тихая комната

M marwy MICSND

#general

Общий канал команды E2E

сегодня

arseny13:58cloud

Прогнал бенч на 10к сообщений в секунду — упираемся не в сеть, а в аллокатор на стороне клиента

с 14:02 канал в E2E · ключ arseny подтверждён лично

arseny14:02e2e

Кидаю дамп профайлера, он большой — 1.4 ГБ, пойдёт напрямую

Передача · напрямую

profiler-dump-0726.bin61 %148 МБ/с · 3.7 с

от arseny · чанки blake3 по 256 КБ · сервер не участвует

marwy14:04 9 мс

Собираю RC. Аллокатор трогать в этом релизе не буду

Задачу на bumpalo заведу отдельно, чтобы не тянуть релиз

Написать в #generalE2EEnter

Главный экран f4xp1: боковая колонка с каналами и голосовой комнатой, лента без пузырей с аватаром один раз на серию сообщений, метка доставки «9 мс» тиками и карточка прямой P2P-передачи файла на 148 МБ/с.

Технический базис f4xp1

Четыре решения, из-за которых числа в интерфейсе выглядят именно так.

01 / transport

QUIC и 0-RTT

Рукопожатие с известным узлом занимает 1 мс: сессия возобновляется без полного TLS-цикла. Потеря пакета в одном потоке не останавливает остальные — Head-of-Line blocking отсутствует по устройству протокола. При переходе с Wi-Fi на LTE соединение мигрирует по Connection ID, без переподключения и без потери очереди отправки.

возобновление
0-RTT
миграция сессии
connection id

02 / runtime

Zero-copy и memory safety

Клиент написан на Rust: без сборщика мусора и без гонок данных на уровне типов. Сообщения разбираются через rkyv — структура читается прямо из принятого буфера, без промежуточной десериализации и лишних аллокаций. Списки чатов и лента виртуализированы, поэтому расход памяти не растёт вместе с историей канала.

разбор кадра
rkyv, 0 copy
RSS в звонке
≈ 200 МБ

03 / crypto

Zero-knowledge и E2E

Ключи согласуются по X25519, трафик закрывается AES-256-GCM, приватные ключи не покидают устройство — сервер видит только шифротекст и маршрутную обвязку. Ключ собеседника проверяется лично по отпечатку вида 9F2A 41C8 7B03 D5E1, а смена ключа показывается отдельной карточкой, а не молча.

обмен ключами
x25519
шифр
aes-256-gcm

04 / p2p

P2P Direct File Transfer

Гигабайтные дампы и записи экрана идут напрямую между клиентами: сервер участвует только в установлении соединения и не хранит файл. Передача разбита на чанки по 256 КБ с хешированием blake3, поэтому обрыв не начинает передачу заново, а прогресс виден полосой тиков в самой ленте.

скорость на стенде
148 МБ/с
чанк
256 КБ · blake3

Телеметрия и спецификации

Сравнение f4xp1 с типовым мессенджером на Electron — тем самым классом клиентов, где интерфейс рисует встроенный браузер, а транспорт работает поверх TCP.

Таблица 1. Показатели f4xp1 против типового Electron-клиента
Метрикаf4xp1Мессенджер на Electron
Установка соединения, повторный вход1 мс · 0-RTT≈ 120 мс · TCP + TLS 1.3
Доставка сообщения в канал, p509 мс60–140 мс
Холодный старт до готовности ввода0.3 с4–9 с
Память в звонке с демонстрацией экрана (RSS)≈ 200 МБ450–900 МБ
Размер дистрибутива18 МБ90–180 МБ
Передача файла 1.4 ГБ148 МБ/с · P2Pчерез сервер, 5–20 МБ/с
Поведение при потере 2 % пакетовпоток независимHoL blocking
Смена сети Wi-Fi → LTEмиграция сессииполный реконнект
Сообщений в ленте без просадки кадра10 000 / сDOM-рендер, 60–200 / с

Замеры f4xp1 — внутренний стенд: Linux x86_64, узел fra-1, канал 1 Гбит/с, rtt 11 мс, сборка RC. Память измерена в худшем сценарии — активный звонок с демонстрацией экрана.
Диапазоны для Electron-клиентов — публичные наблюдения на сопоставимом железе и зависят от конкретного продукта.


Установка за две минуты

Один бинарник без рантайма. Скачайте сборку под свою ОС и сверьте контрольную сумму с указанной на странице релиза.

Linux

x86_64 · AppImage · tar.gz

  1. 01
    Скачайте AppImage со страницы последнего релиза
  2. 02
    Сделайте исполняемым и запустите
    terminal
    # имя файла смотрите на странице релиза
    chmod +x f4xp1-*.AppImage
    ./f4xp1-*.AppImage
  3. 03
    Сверьте хеш с указанным в релизе
    terminal
    sha256sum -c SHA256SUMS.txt

Windows

x86_64 · .exe · portable

  1. 01
    Скачайте .exe со страницы последнего релиза
  2. 02
    Запустите — установка не нужна, portable
  3. 03
    Сверьте хеш в PowerShell
    powershell
    certutil -hashfile f4xp1.exe SHA256

Частые вопросы

Коротко о том, что обычно спрашивают про f4xp1.

Где скачать и на чём запустится?

Linux x86_64 — AppImage и tar.gz, Windows — .exe portable. Все сборки и контрольные суммы — на странице последнего релиза. Один бинарник 18 МБ, без рантайма и без встроенного браузера.

Как проверить, что чат правда зашифрован?

Сверьте отпечаток ключа собеседника лично — вида 9F2A 41C8 7B03 D5E1. Смена ключа показывается отдельной карточкой, а не молча. Приватные ключи не покидают устройство.

Файлы правда идут напрямую?

Да. Сервер только сводит пиры и не хранит файл. Передача бьётся на чанки по 256 КБ · blake3, на стенде — 148 МБ/с. Обрыв докачивает недостающее, а не начинает заново.

Откуда цифры против Electron?

Нативный Rust без браузера внутри: старт 0.3 с против 4–9 с, память в звонке ≈ 200 МБ против 450–900 МБ. Стенд: Linux x86_64, узел fra-1, 1 Гбит/с · rtt 11 мс.

Код открыт?

Пока нет — репозиторий приватный. Открою после чистки и аудита крипты: для мессенджера, который продаёт шифрование, код обязан быть проверяемым.

Сайт следит за мной?

Нет. Ни метрики, ни куки, ни внешние трекеры — только шрифты с Google Fonts. Чего не видит сервер мессенджера, того не видит и сайт.