Directory of the source code.
+------------+ +------------+ +------------+
| Server | <--------> | Client | <--------> | UI |
+------------+ Protocol +------------+ Protocol +------------+
| Session | | Platform |
+------------+ +------------+
| Converter |
+------------+
| Dictionary |
+------------+
Note: Platform is used for various components for platform specific requirements.
- android/
- Android specific implementation.
- Note: Mozc does not contain the client UI implementation for Android.
- unix/
- Linux specific implementation.
- win32/
- Windows specific implementation.
- mac/
- macOS specific implementation.
- ios/
- iOS specific implementation.
- Note: Mozc does not officially support iOS build.
- build_tools/
- Utilities used for build (e.g. code generation).
- bazel/
- Build rules and tools for Bazel build.
- gyp/
- Build rules and tools for GYP.
- protobuf/
- Build rules and tools of GYP for Protocol Buffers.
- base/
- Fundamental libraries for generic purposes.
- data/
- Directory and subdirectories of data files.
- third_party/
- Third party libraries (e.g. Abseil).
- testing/
- Libraries for testing.
- usage_stats/
- Libraries for usage statistics.
- Note: Mozc does not use usage statistics.
- protocol/
- Protocol definitions of function API (e.g. API between client and server).
- config/
- Libraries to manage user configurations.
- request/
- Libraries of request used for text conversion.
- client/
- Libraries of client code.
- Note: The main function of the client is in each platform directory.
- server/
- Libraries of server code.
- The main function is in this directory.
- ipc/
- Libraries of IPC to communicate between client, server and other processes.
- session/
- Libraries of state management between user interactions and text conversion.
- composer/
- Libraries of text composing (e.g. Romaji-Hiragana conversion).
- transliteration/
- Libraries of script type transliteration (e.g. half-width Katakana, full-width Ascii).
- engine/
- Libraries to manage converter libraries.
- data_manager/
- Libraries to manage converter data.
- converter/
- Libraries of text conversion (e.g. Hiragana to Kanji exact match conversion).
- rewriter/
- Libraries for additional conversions (e.g. date input, symbol input, zip code input).
- prediction/
- Libraries of text prediction (e.g. Hiragana to Kanji prefix match conversion).
- dictionary/
- Libraries of dictionary lookup (e.g. Hiragana key to possible words).
- storage/
- Libraries of dictionary data storage (e.g. LOUDS, etc.).