uim (short for "universal input method") is a multilingual input method framework. Applications can use it through so-called bridges.
uim supports the X Window System legacy XIM (short for X Input Method) through the <code>uim-xim</code> bridge. Many X applications are written in either GTK+ or Qt, which have their own modules dealing with input methods, and uim supports both of these with its GTK+ and Qt immodules.
uim has a bridge for the console (<code>uim-fep</code>), Emacs (<code>uim.el</code>), and macOS (MacUIM).