What's New in libchewing 0.11.0 (January 10, 2026)
-
Features
- cli: Now outputs and reads dictionary metadata in source file
- cli: Detects mismatched phrase word count and syllable count
- cli: Ignores empty line or line starts with # when processing dictionary
- editor: Support optional sorting candidates by frequency. Previously the
candidates are always sorted by their order in the dictionary.
-
Developer Features
- New API
chewing_handle_KeyboardEvent()can be used to support any
keyboard layout combination without updating libchewing. Other keyboard
handling API will be deprecated in future release. - New API
chewing_new3()andchewing_get_defaultDictonaryNames()can be
used to initialize a chewing context with specific dictionaries enabled. - New boolean config option
chewing.sort_candidates_by_frequencycan be
set to enable sorting candidates by frequency. - Rust type SyllableSlice is removed from public interfaces.
- Provide libchewing as a Swift package (C based API only).
- New API
-
Bug Fixes
- Auto shift cursor after candidate selection now moves the cursor to the
next phrase instead of the next word. - Fixed a bug when switching input mode from Chinese to English, the state
can be stuck in entering bopomofo. - Fixed the frequency estimation function used by phrase learning to really
take last used time into consideration. Also assign higher frequency to
newly learned phrases.
- Auto shift cursor after candidate selection now moves the cursor to the
-
Changes
- SQLite support is now fully optional and disabled by default
- rust: new sqlite-bundled feature can be used to build with bundled sqlite
to simplify the build configuration on Windows - cli: will try to migrate to new schema when dumping chewing.sqlite3 file
- Use less heuristic when calculating phrase segmentation score.
- Reimplement scoring algorithm to use conditional probability.
- cli: init-database will no longer normalize the frequency of single word
phrase to zero. - autolearn: new phrases with break words inside will be learned both with
and without the break word. - rust: simplified dictionary API.
- rust: the DictionaryMut trait is merged back to the Dictionary trait.
- rust: the Editor::set_editor_options now accepts a closure for setting
options in place.
-
Dictionary
- Default symbols.dat now includes commonly used emojis.
- Dictionary data are built directly from the libchewing-data repository
-
Build
- Bump MSRV to 1.88
New Contributors
- @winterheart made their first contribution in #748
- @eagleoflqj made their first contribution in #759
- @ShikiSuen made their first contribution in #790
Full Changelog: v0.10.3...v0.11.0