arseny13:58cloud
Прогнал бенч на 10к сообщений в секунду — упираемся не в сеть, а в аллокатор на стороне клиента
TRANSPORT · QUIC · E2E
f4xp1 (fuck_speed) — это ультралегкий кроссплатформенный мессенджер на Rust, построенный вокруг QUIC-транспорта, zero-copy сериализации rkyv и сквозного шифрования (E2E) с прямой P2P-передачей файлов.
Все сборки и контрольные суммы — на странице последнего релиза f4xp1 на GitHub. Установка не требует рантайма: один бинарник, без Node.js и без встроенного браузера.
Ни пузырей вокруг сообщений, ни теней, ни градиентов. Зоны разделены фоном и воздухом, цвет остаётся только у чисел и статусов, а всё живое — задержка, доставка, чанки передачи — нарисовано тиками шириной 3 px.
Каналы
general
quic-транспорт7
релизы
оффтоп
В эфире23:41
созвон3
Aarseny
Llenamic
Ddima
тихая комната
M marwy MICSND
сегодня
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
Четыре решения, из-за которых числа в интерфейсе выглядят именно так.
01 / transport
Рукопожатие с известным узлом занимает 1 мс: сессия возобновляется без полного TLS-цикла. Потеря пакета в одном потоке не останавливает остальные — Head-of-Line blocking отсутствует по устройству протокола. При переходе с Wi-Fi на LTE соединение мигрирует по Connection ID, без переподключения и без потери очереди отправки.
02 / runtime
Клиент написан на Rust: без сборщика мусора и без гонок данных на уровне типов. Сообщения разбираются через rkyv — структура читается прямо из принятого буфера, без промежуточной десериализации и лишних аллокаций. Списки чатов и лента виртуализированы, поэтому расход памяти не растёт вместе с историей канала.
03 / crypto
Ключи согласуются по X25519, трафик закрывается AES-256-GCM, приватные ключи не покидают устройство — сервер видит только шифротекст и маршрутную обвязку. Ключ собеседника проверяется лично по отпечатку вида 9F2A 41C8 7B03 D5E1, а смена ключа показывается отдельной карточкой, а не молча.
04 / p2p
Гигабайтные дампы и записи экрана идут напрямую между клиентами: сервер участвует только в установлении соединения и не хранит файл. Передача разбита на чанки по 256 КБ с хешированием blake3, поэтому обрыв не начинает передачу заново, а прогресс виден полосой тиков в самой ленте.
Сравнение f4xp1 с типовым мессенджером на Electron — тем самым классом клиентов, где интерфейс рисует встроенный браузер, а транспорт работает поверх TCP.
| Метрика | f4xp1 | Мессенджер на Electron |
|---|---|---|
| Установка соединения, повторный вход | 1 мс · 0-RTT | ≈ 120 мс · TCP + TLS 1.3 |
| Доставка сообщения в канал, p50 | 9 мс | 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-клиентов — публичные наблюдения на сопоставимом железе и зависят от конкретного продукта.
Один бинарник без рантайма. Скачайте сборку под свою ОС и сверьте контрольную сумму с указанной на странице релиза.
x86_64 · AppImage · tar.gz
# имя файла смотрите на странице релиза
chmod +x f4xp1-*.AppImage
./f4xp1-*.AppImagesha256sum -c SHA256SUMS.txt
x86_64 · .exe · portable
certutil -hashfile f4xp1.exe SHA256
Коротко о том, что обычно спрашивают про f4xp1.
Linux x86_64 — AppImage и tar.gz, Windows — .exe portable. Все сборки и контрольные суммы — на странице последнего релиза. Один бинарник 18 МБ, без рантайма и без встроенного браузера.
Сверьте отпечаток ключа собеседника лично — вида 9F2A 41C8 7B03 D5E1. Смена ключа показывается отдельной карточкой, а не молча. Приватные ключи не покидают устройство.
Да. Сервер только сводит пиры и не хранит файл. Передача бьётся на чанки по 256 КБ · blake3, на стенде — 148 МБ/с. Обрыв докачивает недостающее, а не начинает заново.
Нативный Rust без браузера внутри: старт 0.3 с против 4–9 с, память в звонке ≈ 200 МБ против 450–900 МБ. Стенд: Linux x86_64, узел fra-1, 1 Гбит/с · rtt 11 мс.
Пока нет — репозиторий приватный. Открою после чистки и аудита крипты: для мессенджера, который продаёт шифрование, код обязан быть проверяемым.
Нет. Ни метрики, ни куки, ни внешние трекеры — только шрифты с Google Fonts. Чего не видит сервер мессенджера, того не видит и сайт.