# google/mozc

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/google-mozc).**

2,833 stars · 455 forks · C++ · other

## Links

- GitHub: https://github.com/google/mozc
- awesome-repositories: https://awesome-repositories.com/repository/google-mozc.md

## Description

Mozc is a Japanese input method engine that converts romanized or kana keystrokes into Japanese kanji, kana, and mixed text with predictive conversion. It functions as a cross-platform input method framework, compiling the same engine into platform-specific binaries for Android, Linux, macOS, and Windows.

The engine combines a dictionary-based segmentation system with a hybrid of rule-based and statistical language models to determine word boundaries and predict character sequences. A prefix-tree structure enables real-time, context-aware conversion suggestions as the user types, while a key-event rewriting pipeline transforms raw keystrokes into composable text segments before passing them to the conversion engine.

Mozc manages input through a deterministic state machine that switches between hiragana, katakana, half-width, and direct ASCII modes during composition. The system separates the input method frontend from the conversion engine backend using inter-process communication, keeping the engine platform-independent while allowing platform-specific user interfaces.

## Tags

### User Interface & Experience

- [Japanese Text Converters](https://awesome-repositories.com/f/user-interface-experience/text-input-widgets/predictive-text-inputs/japanese-text-converters.md) — Converts typed romanized or kana syllables into Japanese kanji, kana, and mixed text using a predictive engine. ([source](https://cdn.jsdelivr.net/gh/google/mozc@master/README.md))

### Artificial Intelligence & ML

- [Prediction Engines](https://awesome-repositories.com/f/artificial-intelligence-ml/model-predictions/prediction-engines.md) — Uses statistical language models to predict and convert typed syllables into Japanese characters and words.

### Part of an Awesome List

- [Hybrid Language Models](https://awesome-repositories.com/f/awesome-lists/ai/statistical-and-predictive-models/hybrid-language-models.md) — Combines hand-crafted grammatical rules with a statistical n-gram model for predicting kanji and kana output.

### Data & Databases

- [Morpheme Segmentation Dictionaries](https://awesome-repositories.com/f/data-databases/input-method-dictionaries/morpheme-segmentation-dictionaries.md) — Splits typed romanized or kana input into morphemes using a precompiled dictionary for accurate conversion.

### Development Tools & Productivity

- [Input Method Engine Compilers](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/cross-platform-native-compilation/swift-cross-platform-compilers/input-method-engine-compilers.md) — Compiles the input method engine into platform-specific binaries for Android, Linux, macOS, and Windows. ([source](https://cdn.jsdelivr.net/gh/google/mozc@master/README.md))
- [Cross-Platform Build Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-engines/cross-platform-build-systems.md) — Uses a unified build configuration to compile the same engine source into native binaries for multiple platforms.

### Education & Learning Resources

- [Predictive Conversion Tries](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/data-structure-implementations/data-structures/prefix-trees/predictive-conversion-tries.md) — Builds a trie of word and phrase candidates from a language model for real-time Japanese text conversion.

### Operating Systems & Systems Programming

- [Input Method Text Engines](https://awesome-repositories.com/f/operating-systems-systems-programming/c-based-text-engines/input-method-text-engines.md) — Converts romanized or kana keystrokes into Japanese kanji, kana, and mixed text with predictive conversion.
- [Japanese Input Mode Toggles](https://awesome-repositories.com/f/operating-systems-systems-programming/keyboard-input-modes/japanese-input-mode-toggles.md) — Toggles between hiragana, katakana, half-width, and direct ASCII input modes during composition. ([source](https://cdn.jsdelivr.net/gh/google/mozc@master/README.md))
- [Keyboard Input Modes](https://awesome-repositories.com/f/operating-systems-systems-programming/keyboard-input-modes.md) — Toggles between hiragana, katakana, half-width, and direct ASCII input modes during text composition.

### Software Engineering & Architecture

- [Keystroke Rewriting Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/event-to-state-transformations/keystroke-rewriting-pipelines.md) — Intercepts and transforms raw keystrokes into composable text segments for complex Japanese input sequences.
- [Input Mode State Machines](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/lightweight-state-machines/error-state-machines/input-mode-state-machines.md) — Manages a deterministic state machine switching between hiragana, katakana, half-width, and ASCII modes.
- [Client-Server Architectures](https://awesome-repositories.com/f/software-engineering-architecture/client-server-architectures.md) — Separates the IME frontend from the conversion engine backend via inter-process communication.

### Web Development

- [Cross-Platform Development](https://awesome-repositories.com/f/web-development/cross-platform-development.md) — Builds and compiles a Japanese input method engine into platform-specific binaries for multiple operating systems.
- [Cross-Platform Frameworks](https://awesome-repositories.com/f/web-development/cross-platform-frameworks.md) — Provides a build system that compiles the same input method engine into platform-specific binaries for multiple operating systems.
