Skip to content

v0.7.0-rc.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@kanru kanru released this 26 Mar 13:20
· 249 commits to master since this release
v0.7.0-rc.1
b02ed5b

What's New in libchewing 0.7.0-rc.1 (Mar 25, 2024)

This is the first beta release of the Rust rewrite. The library has been tested
with the AFL++ fuzzer and most of the obvious bugs have been fixed so it should
not crash for normal use. Now we invite power users to daily drive the beta
release in order to find more subtle bugs.

The Rust rewrite is ABI compatiable with previous releases. The most notable
difference with the C version includes a new portable system dictionary format
and two new user dictionary format. Users with existing user phrase dictionary
will be automatically migrated to either a new sqlite3 schema or CDB based
format depending on compile time configuration. Old files will be backed up
automatically. With these change we will be able to support dictionary sharing
and loading multiple dictionaries in future releases.

  • Future roadmap

    • 0.8.x after bug bashing this version will be the first public release with
      rust implementation as the default.
    • 0.9.x will focus on the stablization of the Rust crate API.
    • 1.0.0 will be the first public release of the Rust API. C implementation
      will be removed from the repository.
  • Added

    • Added Colemak-DH ANSI/Orth layout support
    • Supporting migrating user dictionary file to new format. (rust)
    • Allow creating in memory user dictionary (rust)
    • New chewing-cli tool can be used to create or inspect dictionary files. (rust)
    • New chewing-cli tool can dump dictionary as or import from CSV file. (rust)
  • Changed

    • New trie dictionary format now has built-in checksum. (rust)
  • Bug fixed

    • Some unsigned underflow issue found by afl++ (rust)
    • Skip symbol selection if preedit buffer is empty (rust)
    • Allow numlock in selection mode (rust)
    • Avoid infinite recursion (rust)
  • Documentation

    • Added document for fuzzers (rust)
    • Describe how to compile dictionary files
    • Update build instruction and Rust MSRV info
  • Testing

    • Added a fuzzer harness with afl++ (rust)