Kompressionsverfahren: Dropbox portiert Brotli auf Rust
Dropbox nutzt das von Google initiierte Kompressionsverfahren Brotli für seinen Dienst. Um die Sicherheit garantieren zu können, setzt Dropbox dabei auf die Programmiersprache Rust statt C.
Mit dem Kompressionsverfahren Brotli will Google einen neuen Webstandard etablieren, der Daten enger packt als Gzip mit dem Deflate-Algorithmus. Die Browser Chrome, der darauf aufbauende Opera und Firefox unterstützen das Verfahren bereits. Dropbox berichtet nun in seinem Techblog, ebenfalls Brotli einzusetzen. Dafür werde auch eine Portierung in der Programmiersprache Rust verwendet.
Durch einige Anpassungen an die speziellen Bedürfnisse von Dropbox, das hauptsächlich zum Speichern von Bildern und Videos genutzt wird, könnten durch Brotli im Vergleich zu Gzip 4,4 Prozent Bandbreite eingespart werden. Die Anpassungen an Brotli dienen vor allem dazu, Geschwindigkeitssteigerungen bei der Kompression zu erreichen. Dadurch soll das Packen und Versenden der Daten zusammen auch bei einer sehr schnellen Internetverbindung weniger Zeit in Anspruch nehmen als das Versenden der Rohdaten.
Google hatte Brotli ursprünglich vor allem für Inhalte konzipiert, die sich nur wenig ändern und dann massenhaft versendet werden, was für die meisten Webseiten gilt. Der Zeitaufwand für das Packen der Daten spielt hier relativ gesehen keine große Rolle. Dropbox hat sich darüber hinaus beim Dekomprimieren für einen eigenen Weg entschieden und den in C geschriebenen Referenzcode nach Rust portiert.
Rust bringt Sicherheit
Begründet wird der Port damit, dass der C-Code zwar schnell sei, aber zu groß sei, um sicher beweisen zu können, dass er zwei andere wichtige Eigenschaften auch erfülle: Er müsse deterministisch sein - die gleichen Bytes sollen zum gleichen Output führen - und sicher. Rust biete allerdings beide dieser Eigenschaften, so dass sich Angreifer keinen Zugang auf die Dropbox-Systeme verschaffen könnten, indem speziell vorbereitete Datenpakete versendet würden.
Darüber hinaus biete Rust eine Leistung, die den Ansprüchen von Dropbox gerecht werde und nicht mehr Speicher benötige als etwa bei C. Ebenso werde für das Entpacken der Daten eine festgelegte Grenze an Speicher nicht überschritten, wofür eine eigene Funktion zur Speicherzuweisung entstanden sei. Diese Vorteile und einige weitere Kriterien überwiegen laut Dropbox die Tatsache, dass der Rust-Code etwas langsamer ist als sein C-Pendant.
Ob das LLVM-Backend gut optimierten Code erzeugen kann, hängt auch von der Intermediate...
Hallo, tatsächlich ist bei der Textkorrektur einiges schiefgegangen. Dafür entschuldigen...
Das von Goolge initiierte Kompressionsverfahren... Sollte wohl Google heißen :P Und: der...