Repolode
rime

rime/librime

Core C++ input method engine library behind the Rime Chinese input system, supporting shape-based and phonetic Chinese input schemes.

Stars
4,711
Forks
748
Open issues
160
Last commit
10 hours ago

What is it?

librime is the core engine of Rime (Rime Input Method Engine), a cross-platform input method framework written in C++. It handles the logic of converting keystrokes into candidate Chinese characters and words, and it covers the kinds of features found across many Chinese input methods, both shape-based and phonetic.

Input behavior is defined through Rime schemas, which are written in YAML and act as a domain-specific language for designing and testing input method ideas. The engine includes Spelling Algebra for generating variant spellings, which is useful for Chinese dialects, and it supports chord typing on a generic QWERTY keyboard. Traditional Chinese is supported natively, and OpenCC handles conversion to Simplified Chinese and other regional standards.

librime is a library rather than an end-user application. Platform frontends such as Squirrel for macOS, Weasel for Windows and ibus-rime or fcitx5-rime for Linux, along with community frontends for Android, iOS, Vim and Emacs, are built on top of it.

Key features

  • 01Supports both shape-based and phonetic Chinese input methods.
  • 02Defines input behavior with YAML-based Rime schemas.
  • 03Generates variant spellings through Spelling Algebra, useful for dialects.
  • 04Provides native Traditional Chinese support and conversion via OpenCC.
  • 05Supports chord typing on a generic QWERTY keyboard.
  • 06Cross-platform C++ codebase with a plugin architecture.

Use cases

  • Building a custom Chinese input method frontend for a desktop or mobile platform.
  • Designing and prototyping new input schemas for shape-based or phonetic typing.
  • Adding dialect-aware spelling variants to a Chinese input method.
  • Embedding a Chinese input engine into a terminal, editor or web tool.

Quick start

  1. 1

    Install the build dependencies listed in the README (C++17 compiler, cmake, Boost, leveldb, marisa, OpenCC, yaml-cpp)

  2. 2

    Build librime on Linux

    make
  3. 3

    Install librime system-wide

    sudo make install

Things to know

  • This is a core engine library, not a standalone input method, so you also need a frontend such as ibus-rime or Squirrel to use it.
  • Build instructions are given only for Linux; macOS and Windows require separate guides.
  • It depends on several C++ libraries, including Boost, leveldb, marisa, OpenCC and yaml-cpp.

In collections

Topics

FAQ

What is librime?
Core C++ input method engine library behind the Rime Chinese input system, supporting shape-based and phonetic Chinese input schemes. librime is the core engine of Rime (Rime Input Method Engine), a cross-platform input method framework written in C++. It handles the logic of converting keystrokes into candidate Chinese characters and words, and it covers the kinds of features found across many Chinese input methods, both shape-based and phonetic.
Is librime free to use? What license does it have?
librime is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
Is librime still maintained?
Actively maintained. The last commit to librime was on Nov 7, 2026.
What can I use librime for?
Building a custom Chinese input method frontend for a desktop or mobile platform. Designing and prototyping new input schemas for shape-based or phonetic typing. Adding dialect-aware spelling variants to a Chinese input method. Embedding a Chinese input engine into a terminal, editor or web tool.
How do I install librime?
Install the build dependencies listed in the README (C++17 compiler, cmake, Boost, leveldb, marisa, OpenCC, yaml-cpp) Build librime on Linux: make Install librime system-wide: sudo make install
Where can I get librime?
The source code and installation instructions are on GitHub: https://github.com/rime/librime

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects