TypeDuck: Cantonese for everyone at your fingertips
This repository contains the source code for TypeDuck Web.
Visit typeduck.hk/web to give it a try!
TypeDuck Web is a static single-paged application (SPA) built with TypeScript, React, Tailwind CSS and daisyUI.
The RIME Input Method Engine is the technology that powers TypeDuck Web. It is compiled to WebAssembly with Emscripten and runs right in your browser without any data being sent to the server.
-
Execute the command provided on the website to install Bun. Alternatively, you may install it with npm:
npm i -g bun
-
LLVM (Windows only)
You may install the above prerequisites with the following commands:
# Ubuntu sudo apt install -y cmake ninja-build # macOS brew install cmake ninja # Windows choco install -y cmake --ia "ADD_CMAKE_TO_PATH=System" choco install -y ninja llvm
On Windows, you may skip the installation above and execute subsequent commands in Developer PowerShell for Visual Studio if you have Visual Studio installed.
-
Follow the installation guide to install Emscripten.
On Ubuntu, the following additional packages should be pre-installed:
sudo apt install -y \
libboost-dev \
libboost-regex-dev \
libyaml-cpp-dev \
libleveldb-dev \
libmarisa-dev \
libopencc-dev
Then, execute the following commands in order:
bun run boost
bun run native
bun run schema
bun run lib
bun run wasm
bun run worker
bun start
However, the above command is slow to start, at least on Windows. For a faster development experience, you may want to simply build the project.
bun run build
bun run preview