wpd: Rust-декодер WebP, который быстрее и безопаснее libwebp

Memory-Safe WebP Decoding

wpd: Rust-декодер WebP, который быстрее и безопаснее libwebp

Компания Halide выпустила wpd — декодер WebP на Rust, призванный решить проблемы безопасности памяти, подобные CVE-2023-4863. Он обеспечивает полную функциональную совместимость с libwebp и превосходит его по скорости: до 1.19x в однопоточном режиме и до 3.19x в многопоточном. Код можно собрать без рукописного ассемблера, что делает его полностью безопасным для памяти. Проект распространяется под лицензией BSD 2-Clause.

Согласно команде Chromium, около 70% их критических уязвимостей связаны с проблемами безопасности памяти.
  1. jessa0

    Связанный с этим — крейт webpsan от Signal Messenger, который проверяет синтаксис контейнера webp перед тем, как передать его в libwebp. Однако он останавливается как раз перед декодированием самих пиксельных данных, поскольку принцип работы webp требует выделения всего холста для полного декодирования пиксельных данных, что всё равно превратило бы webpsan в полноценный декодер..

    https://docs.rs/webpsan/latest/webpsan/

  2. omoikane

    Я не уверен, каков текущий статус WebP-декодера на основе Wuffs, но это ещё одна реализация, которую стоит сравнить, поскольку она преследует те же цели безопасности и скорости.

    https://github.com/google/wuffs/tree/main/std/webp

  3. computerbuster

    код: https://github.com/halidecx/wpd

Ещё за этот день

2026-10-03