# libwps for the web (johnmcm.com) The WebAssembly module behind johnmcm.com's Microsoft Works Viewer (/works-viewer): libwps with librevenge, built with Emscripten into `wps.wasm` and its loader `wps.mjs`, served from /vendor/local/wps@1/. It reads Microsoft Works documents, spreadsheets and databases, and the other formats libwps knows (Lotus 1-2-3, Quattro Pro, Word for DOS, Microsoft Write, Multiplan, Pocket Word, XyWrite), and returns every librevenge callback libwps makes as JSON; the page builds the document or workbook from that. | File | What it is | |---|---| | `Dockerfile` | The whole build. The Emscripten image is pinned by digest and each source tarball by SHA-256. | | `build.ps1` | Runs the Docker build and copies the result into `frontend/vendor/local/wps@1/`. | | `src/binding.cpp` | The functions the page calls (embind): detect, parse with a password and character set. | | `src/recorder.*` | A librevenge text and spreadsheet interface that writes each call as a JSON event. | | Library | Version | Licence | Source | |---|---|---|---| | libwps | 0.4.14 | MPL-2.0 (or LGPL-2.1+) | https://dev-www.libreoffice.org/src/libwps-0.4.14.tar.xz | | librevenge | 0.0.5 | MPL-2.0 (or LGPL-2.1+) | https://dev-www.libreoffice.org/src/librevenge-0.0.5.tar.bz2 | | Boost headers (Emscripten port) | 1.83 | BSL-1.0 | https://www.boost.org/ | Both libraries are built unmodified. The files in this folder are MPL-2.0 (LICENSE-MPL-2.0.txt). Licence notices: `libwps-COPYING.MPL`, `libwps-COPYING.LGPL`, `librevenge-COPYING.MPL` and `librevenge-COPYING.LGPL` are copied unchanged from the release tarballs above (both libraries are used under MPL-2.0); `LICENSE-zlib.txt` is zlib v1.3.2's and `LICENSE-boost.txt` the Boost Software License 1.0, for the Emscripten ports built in. The module in `vendor/local/wps@1/` carries no notice of its own, so these stand for it.