Рубріки: Новини

WhatsApp скоротили на 50 000 рядків, переписавши частину коду C++ на Rust

Дмитро Сімагін

Фахівці Meta перенесли значну частину коду WhatsApp з мови програмування C++ на більш безпечну Rust. Замінили понад 160 000 рядків коду в критично важливій частині програми — обробці медіафайлів. Це дозволило не тільки суттєво скоротити код, але й знизити в сервісі небезпеку помилок управління пам’яттю.

Проблема з’явилась ще в 2015 році, коли спеціалісти компанії виявили, що кросплатформна бібліотека C++, яка розроблена WhatsApp для надсилання та послідовного форматування файлів MP4 (так звана «wamedia»), може бути модифікована для виявлення файлів, які не відповідають стандарту MP4. Це може викликати помилки на стороні одержувача.

Замість поступового переписування, в Meta розробили версію wamedia на Rust паралельно з оригінальною версією на C++. Потім було вирішено повністю переписати медіабібліотеку, паралельно підтримуючи дві реалізації — на C++ і на Rust.

Зрештою, компанія замінила 160 000 рядків C++ (без урахування тестів) на 90 000 рядків Rust (включно з тестами). Версія Rust продемонструвала переваги в продуктивності та використанні пам’яті під час виконання порівняно з C++. WhatsApp додав такі засоби захисту, як CFI, посилені розподільники пам’яті, безпечніші API обробки буферів тощо.

Нагадаємо, два тижні тому керівництво Meta ухвалило рішення припинити підтримку Workrooms — віртуальних просторів для віддаленої роботи.

Останні статті

Lovable запускає мобільний застосунок для вайб-кодування для iOS та Android

Попри посилений контроль Apple над поширенням в App Store мобільних додатків для вайб-кодингу, стартап Lovable…

29.04.2026

Коли баг гірший за вірус: помилка в коді перетворила шифрувальник Vect на «винищувача» файлів

Фахівці з кібербезпеки виявили критичну помилку в новому вірусі Vect, через яку відновлення даних стає…

29.04.2026

Amazon Quick: персональний агент від AWS для повної автоматизації робочих завдань

Компанія AWS офіційно представила десктопний застосунок Amazon Quick — персонального ШІ-асистента, який працює в браузері,…

29.04.2026

Anthropic запускає Claude for Creative Work: конектори для творчої роботи

Компанія Anthropic випустила дев'ять нових конекторів Claude, які поєднують віртуального помічника з креативними інструментами на…

29.04.2026

NASA випробувала літієвий двигун для польотів на Марс. Рахуємо, скільки це в павербанках

Космічна агенція NASA повідомила, що в лютому 2026 року інженери Лабораторії реактивного руху (JPL) у…

29.04.2026

Garmin Claude: тепер можна контролювати роботу Claude Code через фітнес-трекер

Шведський розробник Єнс Ларссон опублікував на GitHub відкритий проєкт Garmin Claude — інструмент, завдяки якому…

29.04.2026