afrim 0.6.2

Core library of the afrim input method.
Documentation
Afrim ⌨️ 
===
  [![Changelog](https://img.shields.io/badge/Keep%20a%20Changelog--555.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNmMTVkMzAiIHZpZXdCb3g9IjAgMCAxODcgMTg1Ij48cGF0aCBkPSJNNjIgN2MtMTUgMy0yOCAxMC0zNyAyMmExMjIgMTIyIDAgMDAtMTggOTEgNzQgNzQgMCAwMDE2IDM4YzYgOSAxNCAxNSAyNCAxOGE4OSA4OSAwIDAwMjQgNCA0NSA0NSAwIDAwNiAwbDMtMSAxMy0xYTE1OCAxNTggMCAwMDU1LTE3IDYzIDYzIDAgMDAzNS01MiAzNCAzNCAwIDAwLTEtNWMtMy0xOC05LTMzLTE5LTQ3LTEyLTE3LTI0LTI4LTM4LTM3QTg1IDg1IDAgMDA2MiA3em0zMCA4YzIwIDQgMzggMTQgNTMgMzEgMTcgMTggMjYgMzcgMjkgNTh2MTJjLTMgMTctMTMgMzAtMjggMzhhMTU1IDE1NSAwIDAxLTUzIDE2bC0xMyAyaC0xYTUxIDUxIDAgMDEtMTItMWwtMTctMmMtMTMtNC0yMy0xMi0yOS0yNy01LTEyLTgtMjQtOC0zOWExMzMgMTMzIDAgMDE4LTUwYzUtMTMgMTEtMjYgMjYtMzMgMTQtNyAyOS05IDQ1LTV6TTQwIDQ1YTk0IDk0IDAgMDAtMTcgNTQgNzUgNzUgMCAwMDYgMzJjOCAxOSAyMiAzMSA0MiAzMiAyMSAyIDQxLTIgNjAtMTRhNjAgNjAgMCAwMDIxLTE5IDUzIDUzIDAgMDA5LTI5YzAtMTYtOC0zMy0yMy01MWE0NyA0NyAwIDAwLTUtNWMtMjMtMjAtNDUtMjYtNjctMTgtMTIgNC0yMCA5LTI2IDE4em0xMDggNzZhNTAgNTAgMCAwMS0yMSAyMmMtMTcgOS0zMiAxMy00OCAxMy0xMSAwLTIxLTMtMzAtOS01LTMtOS05LTEzLTE2YTgxIDgxIDAgMDEtNi0zMiA5NCA5NCAwIDAxOC0zNSA5MCA5MCAwIDAxNi0xMmwxLTJjNS05IDEzLTEzIDIzLTE2IDE2LTUgMzItMyA1MCA5IDEzIDggMjMgMjAgMzAgMzYgNyAxNSA3IDI5IDAgNDJ6bS00My03M2MtMTctOC0zMy02LTQ2IDUtMTAgOC0xNiAyMC0xOSAzN2E1NCA1NCAwIDAwNSAzNGM3IDE1IDIwIDIzIDM3IDIyIDIyLTEgMzgtOSA0OC0yNGE0MSA0MSAwIDAwOC0yNCA0MyA0MyAwIDAwLTEtMTJjLTYtMTgtMTYtMzEtMzItMzh6bS0yMyA5MWgtMWMtNyAwLTE0LTItMjEtN2EyNyAyNyAwIDAxLTEwLTEzIDU3IDU3IDAgMDEtNC0yMCA2MyA2MyAwIDAxNi0yNWM1LTEyIDEyLTE5IDI0LTIxIDktMyAxOC0yIDI3IDIgMTQgNiAyMyAxOCAyNyAzM3MtMiAzMS0xNiA0MGMtMTEgOC0yMSAxMS0zMiAxMXptMS0zNHYxNGgtOFY2OGg4djI4bDEwLTEwaDExbC0xNCAxNSAxNyAxOEg5NnoiLz48L3N2Zz4K)](https://github.com/fodydev/afrim/blob/main/CHANGELOG.md)
  [![crates.io](https://img.shields.io/crates/v/afrim.svg)](https://crates.io/crates/afrim)
  [![LICENSE](https://img.shields.io/crates/l/afrim.svg)](https://github.com/fodydev/afrim/blob/main/LICENSE)
  ![Rust](https://github.com/fodydev/afrim/workflows/Rust/badge.svg)
  [![docs.rs](https://docs.rs/afrim/badge.svg)](https://docs.rs/afrim)
  [![dependency status](https://deps.rs/repo/github/fodydev/afrim/status.svg)](https://deps.rs/repo/github/fodydev/afrim)
  [![Coverage Status](https://coveralls.io/repos/github/fodydev/afrim/badge.svg?branch=main)](https://coveralls.io/github/fodydev/afrim?branch=main)

  Afrim is an input method designed to protect the native language of various local dialects and is a universal phonetic-based input method platform.

Table of Contents
---

* [History](#history)
* [Features](#features)
* [Installation](#installation)
* [Datasets](#-dataset)
* [Frontends](#-frontends)
* [FAQ](#-faq)
* [License](#licence)
* [Contributing](#contributing)
* [Sponsorship](#sponsorship)

History
---

From the beginning, AFRIM was written as a remake of [Clafrica IME](https://github.com/H-Theking/clafrica), and named *clafrica*.

Then, we created an input method library with some improvements inspired from [RIME](https://github.com/rime). Later, it supports Amharic, Geez and other african phonetic input method. We renamed it to *Afrim Input Method Engine*.

Inspired from [librime](https://github.com/rime/librime), we want AFRIM aka *Afrim Input Method Engine*, not only as an IME, but also as a tool/library to implement IME no matter the target language.

For more details on the project name, confer the issue https://github.com/fodydev/afrim/issues/107.

Features
===

  - [ ] 🌐 Support for all sequential codification codes. 
  - [ ] 🎨 Easy to use CLI interface.
  - [ ] 📚 Customizable dictionary. 
  - [ ] 💻 Support for both desktop and web platform.
  - [ ] 🤖 Support for the Rhai scripting language.
  - [ ] 📝 Auto-suggestion / Auto-correction / Auto-completion.
  - [ ] ☁️  Full immersion mode for non-latin languages. (🚧 Experimental 🚧)

Installation
===

Build dependencies (Linux only)
---
  - libxtst-dev
  - libevdev-dev
  - libxdo-dev

Runtime dependencies (Linux only)
---
  - libxtst-dev
  - libevdev-dev
  - libxdo-dev

Supported keyboard layouts
---
  - QWERTY (USA)
  - FRENCH (not AZERTY)

In using cargo
---
  `cargo install afrim`

Try it in the console
---
  `afrim` comes with a REPL application which can be used to test if his library is working.
  To use the afrim, simply provide the path of the datafile that suit your needs.
  
  Eg. `afrim configfile.toml`

📚 Dataset
===
  🏢 Official:
  - [Afrim Supported Code](https://github.com/fodydev/afrim-data).

  🧑🏿‍🤝‍🧑🏿 Community:
  - Feel free to propose your own.

🎨 Frontends
===

  🏢 Official:
  - [afrim-wish](https://github.com/fodydev/afrim-wish): Frontend for desktop environment.
  - [afrim-web](https://github.com/fodydev/afrim-web): Frontend for web environment.
  - [afrim-keyboard](https://github.com/fodydev/afrim-keyboard): Frontend for android environment.

  🧑🏿‍🤝‍🧑🏿 Community:
  - Feel free to propose your own.

❔ FAQ
===

Looking for answers? Check out our [FAQ](./FAQ.md) to find helpful information and solutions to common questions.

Licence
===

All the code in this repository is released under the Mozilla Public License v2.0, for more information take a look at the [LICENSE](LICENSE) file.

Contributing
===

  If you would like to contribute to this project, please fork the repository and submit a pull request with your changes. 

Sponsorship
===

If you like this project, please star and share our repositories. If you feel generous, a small donation will be greatly appreciated.

### Our sponsors

We are open for sponsors.