SymSpellChecker is a lightweight spell-checking application powered by the SymSpell algorithm and Trie data structure. The project features a GUI built with Qt and is fully containerized using Docker.
-
Docker & Docker Compose:
sudo apt install -y docker.io docker-compose sudo usermod -aG docker $USER -
X11 Display (for GUI support):
sudo apt install -y xorg mesa-utils
-
WSL2 (Ubuntu 20.04/22.04 recommended):
Install instructions -
Docker Desktop with WSL2 integration enabled:
Docker Desktop for Windows -
X Server for Windows (for GUI apps inside WSL2):
git clone https://github.com/Adhikkesh/SymSpellChecker.git
cd SymSpellCheckerxhost +local:docker- Start VcXsrv or Xming.
- Inside WSL2 terminal, set the display:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 export LIBGL_ALWAYS_INDIRECT=1
Tip: You can add these export lines to your
~/.bashrcor~/.zshrcto make them permanent.
docker-compose up --build- The app will load a dictionary (~370k words) and word frequency list (~333k entries) before launching the GUI.
Press Ctrl+C to stop, and then:
docker-compose downCASE STUDY.pro: Qt project configSymSpellChecker.cpp: C++ core logic (SymSpell + Trie)index.html: GUI interface via Qt WebEnginewords_alpha.txt: Dictionary datasetenglish_word_frequency.csv: Word frequency dataDockerfile: Container build setupdocker-compose.yml: Docker orchestration.gitignore: Ignores generated build files
-
No GUI appears:
- Ensure you started
xhost +local:docker(Ubuntu) or your X server (Windows). - Confirm
$DISPLAYis correctly set.
- Ensure you started
-
OpenGL errors:
- Ensure
mesa-utils(Ubuntu) is installed and GPU drivers are present. - On Windows, make sure
VcXsrv/Xmingis running with OpenGL option enabled.
- Ensure
-
Permission denied (Docker):
sudo docker-compose up --build
- Tested on Ubuntu 22.04 and Windows 11 (WSL2).
- Uses C++11 and Qt 5.15.
- On macOS, use Docker Desktop + XQuartz with similar X11 setup.