Back openDesk Edu for a sovereign, open-source education â every vote counts.
Vote nowSave products you love by clicking the heart icon.
Im MĂ€rz 2026 startete ein Konsortium europĂ€ischer Tech-Unternehmen, darunter Nextcloud, IONOS und Proton, Euro-Office â einen Fork von ONLYOFFICE, der Europa eine souverĂ€ne Office-Suite verschaffen sollte. Innerhalb weniger Tage beschuldigte ONLYOFFICE das Projekt jedoch, gegen die AGPLv3-Lizenz zu verstoĂen. Der Streit beendete eine achtjĂ€hrige Partnerschaft zwischen Nextcloud und ONLYOFFICE und hinterlieĂ Euro-Office mit einer Codebasis, deren eigene UnterstĂŒtzer die BeitrĂ€ge als âunmöglich oder stark entmutigendâ bezeichneten.
World-Office (codeberg.org/World-Office) ist die Antwort darauf. Anstatt einen rechtlich umstrittenen Fork weiter zu patchen, schreibt das Projekt die gesamte Office-Suite von Grund auf in Rust neu. Neuntausend C++-Dateien wurden bereits durch 25 Crates ersetzt. Hier ist die Geschichte dahinter und warum dies fĂŒr jeden, der eine Infrastruktur zur Dokumentenbearbeitung einsetzt, von Bedeutung ist.
Euro-Office wurde im MÀrz 2026 als Gemeinschaftsprojekt von Nextcloud, IONOS, Proton und mehreren anderen europÀischen Technologieunternehmen ins Leben gerufen. Es handelt sich um einen Fork von ONLYOFFICE, der webbasierten Office-Suite von Ascensio System SIA. Um MissverstÀndnisse zu vermeiden: Dies ist kein LibreOffice-Fork. ONLYOFFICE und LibreOffice teilen keinen Code. Der Kern von ONLYOFFICE ist in C++ geschrieben, mit einem JavaScript-Web-Frontend, und das native Dokumentenformat ist OOXML.
Der Fork entstand, weil die Upstream-Entwicklung von ONLYOFFICE stagnierte und das europĂ€ische Konsortium eine wirklich offene, community-gesteuerte Alternative wollte. Das Problem: Sie ĂŒbernahmen die Codebasis und die Lizenzbedingungen, und beides erwies sich als problematisch.
ONLYOFFICE vertreibt seinen Quellcode unter der AGPLv3 mit zusĂ€tzlichen Bedingungen in Abschnitt 7 der Lizenz. Diese Zusatzklauseln verpflichten Downstream-Nutzer dazu, das ONLYOFFICE-Produktlogo beizubehalten und einen Markenhafter (Trademark Disclaimer) einzufĂŒgen. Euro-Office entfernte diese zusĂ€tzlichen Bedingungen aus ihrem Fork mit dem Argument, dass Abschnitt 7 der AGPLv3 explizit die Entfernung von âweiteren EinschrĂ€nkungenâ erlaubt, die ein Lizenzgeber ĂŒber die Standard-AGPLv3-GewĂ€hrung hinaus hinzufĂŒgt.
ONLYOFFICE widerspricht. Sie argumentieren, die Lizenz sei âbedingt und unteilbarâ, was bedeute, dass die Entfernung eines beliebigen Teils, einschlieĂlich der ErgĂ€nzungen in Abschnitt 7, zur automatischen Beendigung der Lizenz fĂŒhre. Bradley M. Kuhn, einer der ursprĂŒnglichen AGPL-Autoren, hat Berichten zufolge die Interpretation von Euro-Office zu Abschnitt 7 unterstĂŒtzt. Ein Gericht hat bisher nicht ĂŒber die Angelegenheit entschieden.
| Aspekt | Position von ONLYOFFICE | Position von Euro-Office |
|---|---|---|
| ErgĂ€nzungen zu Abschnitt 7 | Integral, unteilbar von der Lizenz | âWeitere EinschrĂ€nkungenâ, entfernbar unter AGPLv3 §7 |
| Entfernung von Logo/Marken-Klauseln | Löst automatische Beendigung aus | Durch den Lizenztext selbst erlaubt |
| Rechtlicher Status des Forks | Verstoà gegen Lizenzbedingungen | VollstÀndig konform mit AGPLv3 |
| Expertenmeinung | Keine öffentlich genannt | Bradley M. Kuhn (AGPL-Autor) stimmt Berichten zufolge zu |
FĂŒr Unternehmen ist das praktische Ergebnis simpel: Bis ein Gericht entschieden hat, birgt der Einsatz von Euro-Office ein ungeklĂ€rtes rechtliches Risiko. Allein das macht es fĂŒr den produktiven Einsatz in regulierten Umgebungen ungeeignet.
Abgesehen vom Lizenzchaos ĂŒbernahm Euro-Office eine Codebasis mit schwerwiegenden strukturellen Problemen. Die Zahlen sprechen eine deutliche Sprache.
C++-Core-Layer: 10.385 Dateien allein in core/. Die Codebasis nutzt 31 Hierarchien mit Mehrfachvererbung. DesktopEditor enthĂ€lt 263 virtuelle Dispatch-Methoden. Die Desktop-Anwendung liefert ein 200 MB groĂes Chromium Embedded Framework (CEF) Binary plus Qt-AbhĂ€ngigkeiten aus, nur um ein natives Fenster zu rendern.
Web-Frontend: AMD/RequireJS fĂŒr das Modul-Loading, was bedeutet: kein Tree-Shaking. Backbone.js und jQuery fĂŒr die UI, was bedeutet: kein Komponentenmodell. Grunt als Build-Tool, das seit 2017 praktisch tot ist. Nirgendwo ist TypeScript zu finden. Die Frontend-Architektur stammt etwa aus dem Jahr 2014, und das merkt man.
Build-System: CMake orchestriert den C++-Build und zieht Daten aus 22 separaten Repositories. BeitrÀge erfordern das Navigieren durch dieses Multi-Repo-Setup, das VerstÀndnis proprietÀrer Build-Konventionen und das Arbeiten ohne eine nennenswerte Test-Infrastruktur.
Euro-Office selbst rĂ€umte ein, dass BeitrĂ€ge zur Codebasis âunmöglich oder stark entmutigendâ seien. Wenn die eigenen UnterstĂŒtzer eines Projekts es so beschreiben, liegt das Problem im Code, nicht in der Community.
World-Office verfolgt einen grundlegend anderen Ansatz. Es ist kein Fork von Euro-Office oder ONLYOFFICE. Der C++-Quellcode wird nur als Referenzimplementierung beibehalten. Alles wird von Grund auf in Rust neu geschrieben.
Das Projekt ist auf Codeberg unter codeberg.org/World-Office zu finden und nutzt ein Tri-Lizenz-Modell: MIT auf Repository-Ebene, AGPL-3.0-or-later fĂŒr einzelne Rust-Crates und eine optionale kommerzielle Lizenz fĂŒr Nutzer, die diese benötigen.
| Metrik | C++ (Euro-Office) | Rust (World-Office) | VerhÀltnis |
|---|---|---|---|
| Core-Dateien | 10.385 | 25 Crates | 415:1 |
| OOXML-Parser | 3.387 Dateien | 1 Crate (wo-ooxml) | 3.387:1 |
| Test-Anzahl | Minimal | 470+ | N/A |
| Desktop-Runtime | 200MB CEF + Qt | ~10MB Tauri 2.0 WebView | 20:1 |
Die Kompression des OOXML-Parsers verdient eine kurze Pause. Dreitausenddreihundertsiebenundachtzig C++-Dateien, um Office Open XML zu parsen, ersetzt durch ein einziges Rust-Crate. Das ist keine Vereinfachung zum Selbstzweck. OOXML ist tatsĂ€chlich komplex, mit tausenden Seiten an Spezifikationen. Die C++-Implementierung verteilte diese KomplexitĂ€t auf tausende Dateien, weil sie kein kohĂ€rentes Modulsystem besaĂ. Das Crate- und Modulsystem von Rust ermöglicht es World-Office, dieselbe Parsing-Logik hierarchisch innerhalb eines Crates zu organisieren, wobei Submodule die jeweiligen Hauptteile von OOXML (Textverarbeitung, Tabellenkalkulation, PrĂ€sentation, Zeichnung) ĂŒbernehmen.
World-Office ersetzt fast drei Jahrzehnte an C++-AbhÀngigkeitsakkumulation durch Pure-Rust-Alternativen:
| C++ AbhÀngigkeit | Zweck | Rust-Ersatz |
|---|---|---|
| ICU (International Components for Unicode) | Unicode und i18n | icu4x |
| FreeType | Font-Rendering | ttf-parser |
| OpenSSL | TLS/Krypto | rustls |
| 26 weitere vendored C++-Bibliotheken | Verschiedenes | Pure Rust Ăquivalente |
Das ist betrieblich relevant. Jede vendored C++-Bibliothek ist ein Risiko fĂŒr die Supply Chain: separate Build-Systeme, separate Patch-Zyklen, separates CVE-Tracking. Pure Rust-AbhĂ€ngigkeiten werden mit cargo kompiliert, haben ein einheitliches Versionsmanagement und lassen sich trivial fĂŒr WASM-Targets cross-kompilieren.
Drei Eigenschaften machen Rust zur richtigen Wahl fĂŒr den Rewrite einer Office-Suite, abgesehen von den ĂŒblichen Argumenten zur Speichersicherheit.
Speichersicherheit fĂŒr nicht vertrauenswĂŒrdige Eingaben. Dokumenten-Parser sind das Lehrbuchbeispiel fĂŒr speichersichere Sprachen. OOXML-Dateien, alte .doc-Formate und Tabellenkalkulations-Archive sind komplexe BinĂ€r- und XML-Strukturen aus nicht vertrauenswĂŒrdigen Quellen. Die Geschichte der CVEs in Office-Suite-Parsern ist lang und schmerzhaft. Rust eliminiert ganze Klassen dieser Schwachstellen bereits zur Kompilierzeit.
WASM als First-Class-Target. Eine browserbasierte Office-Suite muss in WebAssembly laufen. Rust kompiliert nativ zu WASM, ohne zusĂ€tzliche Toolchains oder Emscripten-Hacks. World-Office setzt WASM sowohl fĂŒr den Browser-Editor als auch fĂŒr die Tauri-basierte Desktop-Anwendung ein. Dieselbe Rust-Codebasis produziert beides.
Cargo ersetzt den Multi-Repo-Albtraum. Ein einziger Cargo.toml-Workspace ersetzt CMake ĂŒber 22 Repositories hinweg. Dependency Resolution, Build-Orchestrierung, TestausfĂŒhrung und Publishing werden alle von einem einzigen Tool gehandhabt. FĂŒr Mitwirkende Ă€ndert sich das Onboarding von âklone 22 Repos und beteâ zu âcargo buildâ.
Der Rewrite ist keine Zeile-fĂŒr-Zeile-Ăbersetzung. Es finden mehrere grundlegende architektonische Verschiebungen statt.
Mehrfachvererbung wird zu Traits und Komposition. Die 31 Mehrfachvererbungs-Hierarchien im C++-Code werden durch Rust-Trait-Objekte und Struct-Komposition ersetzt. Das ist zwar wortreicher, macht den Vererbungsgraph aber explizit und verhindert das âDiamond Problemâ, das die C++-Codebasis plagte.
Keine Raw Pointers. Die C++-Codebasis nutzt extensiv Raw Pointers fĂŒr Dokumenten-KnotenbĂ€ume, Formatkonvertierungs-Pipelines und das UI-State-Management. Rusts Ownership-System zwingt diese in explizite Lifetime-Annotationen oder reference-counted Wrapper, was den Datenfluss lesbar macht.
Test-First mit FormatRoundtrip. World-Office fĂŒhrt einen FormatRoundtrip-Trait ein, den jeder Format-Parser implementiert. Er parst ein Dokument, serialisiert es zurĂŒck, parst die Ausgabe erneut und vergleicht die BĂ€ume. Dies ermöglicht konsistentes Cross-Format-Testing mit generierten Testdokumenten. Die Crate-Suite verfĂŒgt derzeit ĂŒber 470+ Tests, die meisten davon sind property-basierte oder Roundtrip-Tests.
Build-Profile mit LTO und codegen-units=1. Release-Builds nutzen Link-Time Optimisation mit einer einzigen Codegen-Unit. Dies fĂŒhrt zu lĂ€ngeren Kompilierzeiten, aber zu deutlich kleineren und schnelleren Binaries. FĂŒr eine Office-Suite, die schnell starten muss, ist dieser Trade-off lohnenswert.
Neunundvierzig Commits in acht Tagen. Etwa 90 % des C++-Codes wurden durch Rust-Ăquivalente ersetzt. Die verbleibende Arbeit konzentriert sich auf DesktopEditor (~5.000 Dateien) und Common (~2.000 Dateien), welche die native Application Shell und gemeinsame Utilities handhaben.
Was bereits erledigt ist:
wo-renderer, 125 Tests)wo-fonts, 36 Tests)axum fĂŒr die Web-Office-Integrationthiserror fĂŒr Fehlertypen, axum fĂŒr alles HTTPDas Projekt nutzt die Rust Edition 2024, was Zugriff auf die neuesten Sprachfeatures ermöglicht, einschlieĂlich gen-Blöcken fĂŒr Async-Generatoren und verbessertem Trait-Solving. Dies ist keine konservative Entscheidung. Es signalisiert, dass das Projekt auf langfristige Optimierung setzt und nicht auf AbwĂ€rtskompatibilitĂ€t mit Ă€lteren Toolchains.
Wenn Sie eine Infrastruktur zur Dokumentenbearbeitung betreiben, egal ob self-hosted oder in der Cloud, betrifft Sie die Euro-Office/ONLYOFFICE-Situation direkt. Hier ist, was Sie berĂŒcksichtigen sollten.
Das Lizenzrisiko ist real. Wenn Sie Euro-Office produktiv einsetzen, sind Sie einem ungeklĂ€rten AGPLv3-Streit ausgesetzt. Es gibt kein Gerichtsurteil. Die rechtliche Mehrdeutigkeit löst sich nicht von selbst auf. Sollte die Interpretation von ONLYOFFICE prevailen, ist jede Euro-Office-Installation technisch gesehen unlizenziert. PrĂŒfen Sie Ihren Stack jetzt.
Supply-Chain-KomplexitĂ€t ist ein Kostenfaktor. Zweiundzwanzig Repositories, 29 vendored C++-Bibliotheken, CMake-Build-Orchestrierung und ein Grunt-basiertes Frontend sind kein Maintainer-freundlicher Stack. Jeder Security-Patch erfordert die Koordination ĂŒber mehrere Build-Systeme hinweg. Jedes Dependency-Update ist ein mehrtĂ€giges Unterfangen. Das sind technische Schulden, die sich aufsummieren.
WASM Ă€ndert das Deployment-Modell. Eine Pure-Rust-Office-Suite, die zu WASM kompiliert, bedeutet, dass dasselbe Binary im Browser, auf dem Desktop via Tauri und auf dem Server lĂ€uft. Eine Build-Pipeline, eine Test-Suite, ein Deployment-Artefakt fĂŒr drei Plattformen. Wenn Ihr Team derzeit separate Builds fĂŒr Web- und Desktop-Dokumentenbearbeitung pflegt, ist dies eine erhebliche Vereinfachung.
Testabdeckung ist nicht optional. Vierhundertsiebzig Tests mit Roundtrip-Validierung sind eine Basis, keine Endzahl. Aber es sind 470 mehr, als die C++-Codebasis hatte. FĂŒr jeden, der fĂŒr die Uptime in Dokumentenverarbeitungs-Pipelines verantwortlich ist, macht eine Test-Suite, die das Format-Parsing End-to-End validiert, den Unterschied aus, ob eine Regression in der CI oder erst in der Produktion entdeckt wird.
World-Office befindet sich noch in einem frĂŒhen Stadium. Die Core-Editoren sind gegenĂŒber ONLYOFFICE noch nicht feature-complete. Aber die architektonischen Entscheidungen sind fundiert, die Lizenzierung ist eindeutig und das Beitragsmodell ist unkompliziert. FĂŒr Teams, die souverĂ€ne Office-Suite-Optionen evaluieren, lohnt es sich, das Projekt zu beobachten. Der Code ist unter codeberg.org/World-Office zu finden.