Scim Bridge Developer Manual: The introduction

Up

About the author

This library is mainly written by one of a member of SCIM project, Ryo Dairiki.
Please contact me freely if you find any bug.
Any other reports are also welcomed.

What is this for?

Scim-bridge is wrapper library for SCIM, written in C. It is firstly written to solve problems occured by the ABI transition of GNU libstdc++ between 3.* branch and 4.* branch. That's not the problem in the most of cases because you usually used the same compiler for SCIM and GUI apps.

But there are some cases you have to load the shared libraries into apps compiled on the different C++ ABI. For example, you cannot use SCIM compiled by g++ 4.* on acroread, which seems to be compiled by g++ 3.*. But you can load Scim-bridge even in that case, because it is written in C not C++.

There is another benefit of it too, that is, you can reduce the complexity of dependency tree around SCIM by using Scim-bridge. Scim-bridge is seperated in two parts, the agent and the clients. The agent is the IME server which communicates with SCIM. The clients are IMModules which communicate only with the agent so that there is no binary dependency between the clients and SCIM. The binary dependency between the GUI apps and SCIM often cause problems, and difficult to solve. I hope this will help the packagers of SCIM.

How does it work?

The immodule of Scim-bridge, that is, scim-bridge-clients forward key events to the agent over the unix domain socket. And the agent handled them and send back the commands to update the preedit or show lookup table.

The plan for the future

There are some plans for the future.