liblouis 3.39.0 — local build, 2026-10-29 Asia/Shanghai Library: LGPL-2.1-or-later; see LICENSE (full text) and original source headers. The release also contains GPL command-line programs; those programs are not linked into this WASM. No liblouis-js Easy API or third-party application glue. Official source URL: https://github.com/liblouis/liblouis/releases/download/v3.39.0/liblouis-3.39.0.tar.gz Source SHA-256: 629fa8cb0dfd9ad457c5bf47a42f0953b673e62c8ad6b1d03ddc4e2bd20008f1 Complete corresponding library source is provided alongside the binary: source/liblouis-3.39.0.tar.gz Build: Emscripten 6.0.10, 32-bit widechar (--enable-ucs4), -O3. Toolchain source: https://github.com/emscripten-core/emsdk/tree/6.0.10 Emscripten source: https://github.com/emscripten-core/emscripten/tree/6.0.10 Emscripten runtime license: MIT / University of Illinois NCSA; see LICENSE-emscripten. Toolchain and generated loader are separate from site glue. Rebuild: 1. In a working directory create scripts/ and .engine-build/. 2. Copy source/build-engine.sh and source/vendor-tables.py into scripts/. 3. git clone --depth 1 --branch 6.0.10 https://github.com/emscripten-core/emsdk.git .engine-build/emsdk 4. With Python >=3.10 selected via EMSDK_PYTHON, run: .engine-build/emsdk/emsdk install 6.0.10 .engine-build/emsdk/emsdk activate 6.0.10 5. Copy source/liblouis-3.39.0.tar.gz into .engine-build/. 6. bash scripts/build-engine.sh This produces public/engine/liblouis-3.39.0/. All compiler/link flags are in the script. No modifications are applied to C library sources or tables. A byte-identical independent rebuild has not been verified. All nine tables are copied unchanged, including their copyright and LGPL notices. They include work by the BRLTTY Team, ViewPlus Technologies, Computers to Help People, JJB Software, American Printing House for the Blind, RNIB, Joseph Lee, Krzysztof Drewniak, Anthony Tibbs, DocArch, Bert Frees, and Mesar Hameed. Consult tables/* for exact per-file notices. manifest.json lists every distributed artifact's SHA-256 and byte size (except itself). Validate these in the repository with npm test. The library loads as a separate ES module + WASM, not embedded in application code. To use an interface-compatible modified version, replace liblouis.mjs, liblouis.wasm and/or tables in this directory in a local copy of the site. The glue checks version 3.39.0 and 4-byte widechar; adjust ENGINE_VERSION in src/lib/braille/index.ts when deliberately upgrading. No restriction is imposed on modifying the LGPL library or reverse engineering to debug modifications. NABCC: text_nabcc.dis defines an eight-dot repertoire. This learning tool only uses its 64 six-dot ASCII mappings, derived from the unchanged table at load. Lowercase letters map to six-dot cells; uppercase letters add dot 7 and are rejected. Backtick and curly braces ARE valid six-dot NABCC. Do not substitute uppercase BRF mappings. Dots 7/8 and control characters are refused. Application TypeScript is custom glue, separate from library licensing. Brand/domain and the application distribution license remain Owner decisions. This local build is not permission to publish or deploy the application.