# libwpd for the web (johnmcm.com) The WebAssembly module behind johnmcm.com's WordPerfect viewer (/open-file/wordperfect): libwpd with librevenge, built with Emscripten into `wpd.wasm` and its loader `wpd.mjs`, served from /vendor/local/wpd@1/. It reads WordPerfect documents (DOS 4.2 and 5.x, Windows 6 to the current version, Mac) and returns every librevenge callback libwpd makes as JSON, in the same form as the Works Viewer's module (wasm-src/wps/), so the page builds the document with the same code. | 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/wpd@1/`. | | `src/binding.cpp` | The functions the page calls (embind): detect, and parse with a password. | | `src/recorder.*` | The librevenge text interface that writes each call as a JSON event; a copy of `../wps/src/recorder.*`. | | Library | Version | Licence | Source | |---|---|---|---| | libwpd | 0.10.3 | MPL-2.0 (or LGPL-2.1+) | https://dev-www.libreoffice.org/src/libwpd-0.10.3.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: `libwpd-COPYING.MPL`, `libwpd-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-boost.txt` is the Boost Software License 1.0, for the Emscripten port built in. The module in `vendor/local/wpd@1/` carries no notice of its own, so these stand for it.