ar-reshaper 0.3.2

Reconstruct Arabic sentences to be used in applications that don't support Arabic script.
Documentation

Arabic Reshaper Rust

Latest version Build Status unsafe forbidden MIT

Reconstruct Arabic sentences to be used in applications that don't support Arabic script.

Usage:

resahpe a single line of string

use ar_reshaper::{ArabicReshaper, reshape_line};

let reshaper = ArabicReshaper::default();

// You can reshape just a single string using
println!("{}", reshaper.reshape("سلام دنیا"));
// or using `reshape_line` method if you dont want to construct the [ArabicReshaper]
// and you just want to reshape a few strings with default config
println!("{}", reshape_line("سلام دنیا"));
// Both will reconstruct the string and print `ﺳﻼﻡ ﺩﻧﯿﺎ`

reshape a slice of strings

use ar_reshaper::{ArabicReshaper}

let reshaper = ArabicReshaper::default();

let lines = [
    "سلام",
    "سلام، خوبی؟",
];

println!("{:#?}", reshaper.reshape_lines(lines));
// or you can just use reshape method in a loop... the choice is yours.

reshape strings on a iterator

use ar_reshaper::ArabicReshaperExt;

for line in ["یک", "دو"].iter().reshape_default() {
    println!("{line}");
}

You can check example or test directory for more examples.

features:

  • ttf-parser: if you enable this feature the ReshaperConfig method will have another extra method named from_font that can be used to enable ligatures only if they exist in the input font.
  • bitflags: enable the use bitflags for the LigaturesFlags.

Credits:

this project is based on the awesome python-arabic-reshaper. you can check original project in this repository