# liblouis 3.39.0 (WebAssembly build)

These files are **liblouis**, the open-source braille translator and
back-translator, compiled to WebAssembly. Braillito's English braille
translator (`/en/braille-translator/`) loads them to translate text to and from
Unified English Braille, Grade 1 and Grade 2.

- `liblouis.js`, `liblouis.wasm` — liblouis 3.39.0, unmodified, with these
  upstream tables embedded: `en-ueb-g1.ctb`, `en-ueb-g2.ctb`, `unicode.dis` and
  the files they include (`en-ueb-chardefs.uti`, `en-ueb-math.ctb`,
  `braille-patterns.cti`, `latinLetterDef6Dots.uti`, `latinUppercaseComp6.uti`,
  `spaces.uti`, `text_nabcc.dis`).
- `COPYING.LESSER` — the licence.
- `liblouis-3.39.0.tar.gz` — the complete source these two files were built
  from: the unmodified upstream release, byte for byte.
- `build-liblouis-wasm.sh` — the script that builds them from that tarball.
- `THIRD-PARTY-NOTICES.txt` — licences of the Emscripten runtime and the musl C
  library, which the compiler adds to the output.

## Licence

liblouis is copyright © the liblouis contributors and is distributed under the
**GNU Lesser General Public License, version 2.1 or later**. The full text is
in `COPYING.LESSER`. The UEB tables carry their own copyright notices (ViewPlus
Technologies, JJB Software, American Printing House for the Blind, RNIB and
individual contributors), under the same licence.

The Emscripten runtime and musl code in the two files are under the MIT (and,
for Emscripten, University of Illinois/NCSA) licences reproduced in
`THIRD-PARTY-NOTICES.txt`.

This is a separate, replaceable library. Braillito's own code calls it through
its public functions (`lou_translateString`, `lou_backTranslateString`) and does
not modify it.

## Source

The complete corresponding source is served from this same folder:

- [`liblouis-3.39.0.tar.gz`](liblouis-3.39.0.tar.gz), the upstream release
  tarball, SHA-256 `629fa8cb0dfd9ad457c5bf47a42f0953b673e62c8ad6b1d03ddc4e2bd20008f1`.
  The same file is published by the liblouis project at
  <https://github.com/liblouis/liblouis/releases/download/v3.39.0/liblouis-3.39.0.tar.gz>.
- [`build-liblouis-wasm.sh`](build-liblouis-wasm.sh), which checks that hash,
  compiles the library with Emscripten 6.0.10 and embeds the tables. To rebuild
  or replace the library:

      OUT=./out TARBALL=./liblouis-3.39.0.tar.gz EMSDK=/path/to/emsdk ./build-liblouis-wasm.sh

- Upstream project: <https://github.com/liblouis/liblouis>

## Verification

Before publishing, this exact build was run against liblouis's own UEB test
specifications (`tests/braille-specs/en-ueb*.yaml`): 215,960 checks, forward and
backward, all passing. 361 further cases are marked as known failures upstream
and 131 need emphasis or cursor input that the web translator does not use.
