11 ms·
ZetaOffice: LibreOffice in the Browser
- wmf 2y agoHow does this work? Is it WASM-based or what?
- benatkin 2y agoIt runs on ProseMirror and AG Grid. Joke aside, the source code isn't featured on the web page, despite LibreOffice (unlike Apache OpenOffice) being copylefted. They mention self hosting, but it says to contact them. It seems it runs on WebAssembly either directly or through a VM on top of WebAssembly like https://copy.sh/v86/ https://copy.sh/v86/ . The screen seems to be simulated with a canvas. I think perhaps they didn't change the code of LibreOffice much, but have a custom setup of something like https://copy.sh/v86/ https://copy.sh/v86/ or even are running it on actual WebAssembly with a virtual screen. So they have a virtual computer that it's running on, and they consider that separate when it comes to copyleft obligations. Plus it's possible to make something open source but inconvenient, and charge to make it convenient.
- hoistbypetard 2y agoFrom the description here[1], it sounds like they're using WASM builds of LO. I'm not quite interested enough to spend the CPU cycles it'd take to build and see whether that is really the whole story. [1](https://github.com/allotropia/zetajs?tab=readme-ov-file https://github.com/allotropia/zetajs?tab=readme-ov-file)
- benatkin 2y agoThat's nice. AFAICT nobody has yet figured out how to run the rust compiler in WebAssembly directly, but it runs in v86. That's why I wondered if they were taking that shortcut for another complex program. Here's their page about WASM: https://wiki.documentfoundation.org/Development/WASM https://wiki.documentfoundation.org/Development/WASM It says it uses Qt/VCL. Maybe those can talk to canvas in a fairly straightforward way, or maybe ZetaOffice chose a different backend to get a proof of concept out faster.
- rzzzt 2y agoSide question: did GTK3's HTML renderer get anywhere? I remember a calculator application running in a browser as a demo from a long time back.
- thorstenb 2y agoThat still seems to be there, even for gtk4: https://docs.gtk.org/gtk4/broadway.html https://docs.gtk.org/gtk4/broadway.html (but it says, between the lines, mostly stale I guess) As an aside: one of the very first demos of LibreOffice in a browser (from the Collabora people) was using the broadway backend. But they've moved on, using their own tiled rendering server backend, plus custom, javascript gui on the client.
- hoistbypetard 2y agoIt looks like they've developed a javascript library that interacts with a WASM build of LibreOffice: https://github.com/allotropia/zetajs?tab=readme-ov-file https://github.com/allotropia/zetajs?tab=readme-ov-file
- thorstenb 2y agoYup, and it's all fully upstreamed in LibreOffice, see our blog (https://blog.allotropia.de/category/libreoffice/ https://blog.allotropia.de/category/libreoffice/), and the upstream wiki page: https://wiki.documentfoundation.org/Development/WASM https://wiki.documentfoundation.org/Development/WASM For an even more obvious demo of that, c.f. the hidden gem https://zetaoffice.net/demos/simple-examples/rainbow_writer.html https://zetaoffice.net/demos/simple-examples/rainbow_writer.... ;) Current source version powering the demos is https://git.libreoffice.org/core/+/0d9eb8245e1a1345ed9526ad8c15d6cd1fbd183b%5E%21 https://git.libreoffice.org/core/+/0d9eb8245e1a1345ed9526ad8... - we should make that more prominent, indeed.
- bigbones 2y agoIt sounds like you might know the answer to this. Would it be straightforward to use this for sandboxed headless file conversion? You can do that already with LibreOffice, but it's a monster amount of unsafe code that's difficult to containerize securely
- thorstenb 2y agoIndeed can be done, proof of concept shown in this talk: https://www.youtube.com/watch?v=X8LwaDjcr7M https://www.youtube.com/watch?v=X8LwaDjcr7M Regarding sandboxing - everything WebAssembly is heavily sandboxed already, and requires cross-origin isolation in the browser, so we can use SharedArrayBuffers. So that's likely no worse than running LibreOffice containerized on a server.
- bigbones 2y agoOh whoa a 5 minute video for exactly this :) Apologies for making you be my Google. Yep, everything in wasm makes things much easier to work with, especially if you want to run it on a client device
- e1g 2y agoI just containerized LibreOffice to do docx->pdf conversation, but now I'm wondering - what parts seem particularly gnarly to you? My naive strategy is to mount an external volume to put/collect files, then call `soffice` inside the container to process them. We generate all source docx files so I'm not worried about an injection from that angle.
- karencarits 2y agoI can remember testing libre office in the browser many years ago, seems like that project was frozen in 2020 as others external projects emerged. The wiki has a guide for docker: https://wiki.documentfoundation.org/Development/LibreOffice_Online https://wiki.documentfoundation.org/Development/LibreOffice_...
- gbraad 2y agothe link you refer to talks about collabora and allotropia. the first is what powers Nextcloud Office/Collabora Office online and mobile apps (using coolwsd). the latter is allotropia, who is behind Zeta that is mentioned here. both have a slightly different approach to how this works. as i understand it, all of this is upstream and not really frozen; perhaps that page needs an update? Note: "LibreOffice Online is not intended as a standalone software. His goal is, instead, to be integrated with other tools to edit their documents." ... while Zeta and Collabora are standalone.
- chris_wot 2y agoIt wasn't frozen, Collabora were the ones doing the work and so they have largely hosted and developed LibreOffice Online.
- gbraad 2y ago(same thought here; just didn't want to sound harsh) The idea of LOOL (LibreOffice OnLine) is to be an embeddable component; we have used it before on a Moodle site. And this is the same for COOL (Collabora Office OnLine), which is used by Nextcloud Office (as components called COOLWSD, and LOKit).
- FrostKiwi 2y agoThat's excellent! You guys should interact with Nextcloud or someone should try their hand at a Nextcloud App [1]. Nextcloud's solution to Google Docs & friends is via the integration of OnlyOffice[2], which requires a DocumentServer [3] to function in the context of Nextcloud. Even without the collaboration aspect, having LibreOffice work off WASM, without any extra infrastructure requirement would be an excellent edition to that ecosystem I think. [1] https://apps.nextcloud.com/ https://apps.nextcloud.com/ [2] https://www.onlyoffice.com/ https://www.onlyoffice.com/ [3] https://github.com/ONLYOFFICE/DocumentServer https://github.com/ONLYOFFICE/DocumentServer
- sneak 2y agoNextcloud is terrible and will eat your data, silently and without remorse. Avoid it at all costs.
- high_priest 2y agoWhat does "Nextcloud will eat your data" mean, specifically? Do you mean the applications of the suit are buggy, or are they somehow hackable / leaking private information?
- hobobaggins 2y ago"Eating your data" seems to refer to very serious bugs rather than leaking or vulns.
- aryonoco 2y agoNextcloud is a steaming pile of barely maintained donkey dung one should not approach with anything other than a 10' pole while wearing a full Hazmat suit.
- Jaxan 2y agoI use it at home just fine. Granted, I only use it for files and I’m not using the office apps from it.
- gbraad 2y agohow is this different from http://www.collaboraoffice.com/ http://www.collaboraoffice.com/ ? Collabora works on mobile devices and integrates with Nextcloud note: they use WASM, so the load is on the client. Collabora relies on a server part, though easy to host.
- landolix 2y ago[dead]
- kolAflash 2y agoCOOL (Collabora Online) requires some extra infrastructure. See this previous post. https://news.ycombinator.com/item?id=42251940 https://news.ycombinator.com/item?id=42251940 I use COOL every day. But I haven't set it up on my low end home server yet, because of the extra resources needed.
- gbraad 2y agoI am aware of the additionals, like COOLWSD. But since they run this in their Android apps, it seems this can already be Pi-ready
- ptman 2y agoCryptpad, which includes a bundled copy of onlyoffice, works quite nicely.
- xrd 2y agoZeta.js is such an impressive JavaScript library. I'm blown away. The examples where you can load a document in less than ten lines, amazing. Then, change colors of all cells in less than ten lines, amazing. I'm also blown away that there is a gulp file in the repository. That's a blast from the past.
- chuckadams 2y agoI'm still working with stuff using grunt (most certainly not my choice). gulp is not that bad as a generic task runner, though the last thing I'd use it for these days is to build JS artifacts.
- starik36 2y agoLove the Deep Space 9 Easter egg!
- kolAflash 2y agoYou mean the one about Kasidy Yates? ;-)
- porphyra 2y agoWhile it is an amazing technical feat, there are, expectedly, a bunch of quirks to be ironed out. The font rendering, for example, is very bad. Very excited to see how this goes in the future!
- austin-cheney 2y agoThere is also https://fleet.linuxserver.io/image?name=linuxserver/libreoffice https://fleet.linuxserver.io/image?name=linuxserver/libreoff...
- AnonC 2y ago> ZetaOffice is also available as a native Desktop application for Linux and Windows. Download the Beta here. Why is a desktop application being developed and provided if this is compatible with LibreOffice (since the latter already has desktop applications)? Is it just to have the same name and recognition? Is the desktop application kept on par with the latest LibreOffice release or does it only guarantee document format compatibility up to a specific version?
- n3storm 2y agoLooks like anything that can be snapflatpacked will be snapflatpacked.
- thorstenb 2y agoZetaOffice is focusing on developers wanting to integrate it (be that a web app, or a desktop line-of-business application, e.g. via Eclipse RCP) - having the exact same code built across all platforms should make for excellent consistency (document rendering, and API compatibility). We can also offer LTS support & security updates, beyond the normal LibreOffice 1-year lifetime.
- chrismorgan 2y agoI just tried the demo on my very capable laptop (ASUS Zephyrus G15 2021, Linux, Sway; Firefox, also tried Chromium). Performance is execrable. Text rendering is awful. Input is simply broken (e.g. my Compose key just doesn’t work). Double clicking highlighted the entire canvas thing, as well as the word under the cursor. Right clicking did nothing. Scrolling isn’t captured. The first menu thing I happened to try in the full-UI https://zetaoffice.net/demos/simple-examples/rainbow_writer.html https://zetaoffice.net/demos/simple-examples/rainbow_writer.... example (Format → Theme, maybe I just picked unfortunately) crashed the whole app (which means that it just stops working mysteriously, leaving the UI in the last state it was in). And you can’t even get started until it’s downloaded 50MB. (Though I’m actually mildly impressed it’s only that size.) Seriously, this is completely unusable. It’s “cool tech demo”, but I would hate to actually have to use it. And I’m pretty sure, based on my rather accurate understanding of how all these things work (comprehensive on the web side, good on the native side, not so much specific about LibreOffice itself), that a lot of this is going to be completely unfixable—though a couple of the things I identified are fairly straightforward to fix, which is if anything a further indictment. It’s going to be extremely hard to get even decent results without targeting real DOM instead of going pure-canvas, and you can’t get excellent results without doing so.
- peutetre 2y ago> It’s going to be extremely hard to get even decent results without targeting real DOM instead of going pure-canvas, and you can’t get excellent results without doing so. Sure you can. Google Docs switched to canvas three years ago: https://workspaceupdates.googleblog.com/2021/05/Google-Docs-Canvas-Based-Rendering-Update.html https://workspaceupdates.googleblog.com/2021/05/Google-Docs-... This wasm application renders to canvas and works fine for me: https://bandysc.github.io/AvaloniaVisualBasic6/ https://bandysc.github.io/AvaloniaVisualBasic6/ This one too: https://flutterweb-wasm.web.app/ https://flutterweb-wasm.web.app/ Flutter and Google Docs gave up on the DOM because they couldn't get it working well enough, consistently enough across browsers. When you draw to canvas you get more consistent results because you control all the drawing.
- chrismorgan 2y ago
- Animats 2y agoThat animated ad is a total turn-off. I've used LibreOffice/OpenOffice/StarOffice for two decades now. It's OK, not great. At least it interoperates with Microsoft desktop formats now. Mostly.
- tpoacher 2y agoLO is contantly updated and improved. The 2 decades observation isn't really useful. Would you compare today's MSO experience to MSO2000 on Windows Millenium? I use LO exclusively and it's a joy to use. On the rare instances I'm forced to use MSO it feels only marginally better than google docs. YMMV And, strictly speaking, the reason things break sometimes when switching from LO to MSO is because MSO is broken: LO follows the spec (both .odt and .docx) faithfully, which then breaks when MSO relies on undocumented features or outright bugs for the end-result (i.e. the "works best on Internet Explorer" legacy).
- squarefoot 2y ago> I use LO exclusively and it's a joy to use. Same here and at several other people who asked me for alternatives over the years. I installed LO (formerly also OO) both on Linux and Windows and they became productive almost immediately. However when I install it on other people PCs I always set the default save formats as Word/Excel/Powerpoint 97-2003 so that nobody will complain when they send files to other people who presumably will be running mostly MS Office.
- deleted 2y ago[deleted]
- mstngl 2y agoI would love to have something like this in order to provide the office features for documents hosted in nextcloud directly. Yes, there is Nextcloud Office/Collabora Office but this needs separate provider and is not included in hosted Nextcloud (e.g. at Hetzner). The ease of OneDrive + MS365 in comparison is quite attracting. For my current use (sharing documents in a team of 50 - non-commercial but somehow professional approach) the latter is still the tool of choice. Being able to share a link, which allows others to directly edit presentations and spreadsheets in a browser (while the files are available in a local file structure) is just great.
- cess11 2y agoI might do documents in the browser if LyX was ported to WASM and performance is good.
- akx 2y agoNeat! Couple of observations: - https://zetaoffice.net/demos/simple-examples/rainbow_writer.html https://zetaoffice.net/demos/simple-examples/rainbow_writer.... hangs with an `unreachable` in the console if I try Tools -> Options. - Things don't seem to be hiDPI aware, so everything looks a bit unfortunate on e.g. my MacBook's retina screen.
- johnisgood 2y agoMay be an unpopular opinion, but: I do not want LibreOffice in my browser, my browser is already slow enough as it is for me. What next? Blender in the browser? OS inside the browser? (Oh yeah, we already have that!)
- doubled112 2y agoThe browser is the OS now. Everything underneath is just a hardware abstraction layer.
- johnisgood 2y agoI really do not want it to be the future. :( Just because some people use the browser all the time, it does not mean that it should be the "OS". It is silly.
- samuelstros 2y agoWhat makes you think the browser as OS is silly?
- johnisgood 2y agoThe browser is for browsing the Internet, it is a tool specialized for that, it has nothing to do with being an operating system. Being able to boot an OS within it does not make it an OS either. It just adds an unnecessary and potentially detrimental (to both performance and security) layer: OS -> browser -> OS, which is just silly. If you do not see the absurdity, let us consider this: OS -> browser -> OS -> browser -> OS, ad infinitum. :P
- lurking_swe 2y agosimple - performance is often garbage. web apps use more cpu and memory than a native app. people should not need an M1 MacBook or better just to edit a document. (see top comment) The only reason people build “apps” in the browser to begin with is because it simplifies the development for the engineering team. Easier to ship, easier to update, write once, etc. Sometimes the user benefits, but rarely. The other problem I have is it blurs the lines between data on your machine (private) and data that is in the cloud. not everybody wants all their data in the cloud. When you’re working with a “app” in the web browser it’s not always clear.
- greenavocado 2y agoThe font rendering/kearning makes my eyes bleed
- karel-3d 2y agoIsn't there the Collabora stuff that's actually optimized for browser? (but I haven't been able to actually run it)
- Andrew_nenakhov 2y agoFrom what I understand, Collabora basically runs LibreOffice on the server side and relays the resulting image to the client. This looks like it has similar approach. And I'm sad to say it but Collabora is near unusable compared to Google Docs. Humanity really does need an online self-hosted office suite that natively uses OpenDocument format, but I'm afraid that to achieve that it'll be easier to start from scratch with browser version as a first platform in mind.
- alwayslikethis 2y agoMaybe Etherpad? https://etherpad.org/ https://etherpad.org/
- homebrewer 2y agoCollabora office uses a custom web ui for controls, dialogs, etc. The document body is rendered by the server and streamed in raster tiles over a web socket. https://sdk.collaboraonline.com/docs/architecture.html https://sdk.collaboraonline.com/docs/architecture.html
- fguerraz 2y agoCollabora is perfectly fine, what’s your gripe with it?
- Andrew_nenakhov 2y agoIt is not perfectly fine. It is dreadfully slow and nearly unusable compared to Google Documents or native LibreOffice.
- oever 2y agohttps://webodf.org https://webodf.org was an attempt for that. Unfortunately, funding ran out.
- velcrovan 2y agoPerfect, this gives me a great idea for an April 1 company-wide announcement next year.
- merb 2y agoIs it easy to turn it into a read only mode? Just for viewing? Basically I looked forward for such a solution for a long time, but everything I’ve seen is either too heavy or nearly impossible to scale. I did not know that it is possible to wasm build lo!
- kolAflash 2y agoThis demo is read only. https://zetaoffice.net/demo2.html https://zetaoffice.net/demo2.html https://github.com/allotropia/zetajs/tree/4e071799d6318ac6831db45f9aea50b478bf30d1/examples/ping-monitor https://github.com/allotropia/zetajs/tree/4e071799d6318ac683...
- sellmesoap 2y agoI'm excited for stuff like this, but the stock image of 'who we are' is a long way different then the pictures you get when you follow the link to who they are.
- halJordan 2y agoWorks on any device! > demo is disabled on mobile
- maineagetter 2y agoI tried using Collabora but I've realized it's not open source in the sense of not being able to compile it in production mode without paying money.