Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Lipi Lekhika โ Rust
A high-performance transliteration library for Indian Brahmic scripts
๐ Website โข ๐ Documentation โข ๐ฆ Crates.io โข ๐ Changelog
โจ Features
- ๐ Bidirectional Transliteration โ Convert between 15+ Indian Brahmic scripts
- โก High Performance โ Zero-overhead abstractions and optimized algorithms
- ๐ก๏ธ Type Safe โ Leverages Rust's type system for safety and correctness
- ๐ฏ Customizable Options โ Fine-tune transliteration and typing behaviour
- โจ๏ธ Typing Mode โ Stateful context for real-time character-by-character input
- ๐ฆ Embedded Script Data โ All script data bundled at compile time
โก Performance
The fastest Lipi Lekhika implementationโabout 7.3ร faster than pure JavaScript on the shared benchmark suite. See the full benchmark table โ
๐ฅ Installation
๐ Quick Start
Basic Transliteration
use ;
With Custom Options
use ;
use HashMap;
๐ API
Core Functions
Script Enum
All script/language parameters use the Script enum instead of strings. You can use full names or shorthand aliases:
use Script;
// Full names
Devanagari
Telugu
Normal
// Language names
Hindi // resolves to Devanagari
Sanskrit // resolves to Devanagari
English // resolves to Normal
// Shorthand aliases
Dev // Devanagari
Tel // Telugu
Tam // Tamil
Convert to string with to_string(). Parse from string with FromStr:
use FromStr;
use Script;
let s = Devanagari.to_string; // "Devanagari"
let parsed = from_str.unwrap; // Script::Dev
Get the normalized/resolved script using .into():
use ;
let resolved: ScriptListEnum = Hindi.into; // ScriptListEnum::Devanagari
let resolved: ScriptListEnum = Dev.into; // ScriptListEnum::Devanagari
let resolved: ScriptListEnum = English.into; // ScriptListEnum::Normal
transliterate
Transliterates text from one script to another.
Parameters:
textโ Text to transliteratefromโ Source script (Scriptenum)toโ Target script (Scriptenum)trans_optionsโ Optional custom transliteration options
Returns: Cow<'a, str> โ Transliterated text (borrows input when from == to)
get_all_options
Gets all available custom options for a script pair.
Parameters:
from_scriptโ Source scriptto_scriptโ Target script
Returns: Vec<String> โ List of option keys
get_script_typing_data_map
Gets typing data mappings for a script (for building custom input methods).
Parameters:
typing_scriptโ Script (Scriptenum)
Returns: ScriptTypingDataMap โ Typing data
Typing Module
For character-by-character real-time input:
use Script;
use ;
Types
-
TypingContextโ Stateful context for typing modenew(typing_script: Script, options: Option<TypingContextOptions>)โ Create new contexttake_key_input(&mut self, key: &str)โ Process single character inputclear_context(&mut self)โ Clear internal state
-
TypingContextOptionsโ Configuration for typing behaviorauto_context_clear_time_ms: u64โ Auto-clear timeout (default: 4500ms)use_native_numerals: boolโ Use script-native numerals (default: true)include_inherent_vowel: boolโ Include inherent vowel/schwa (default: false)
-
TypingDiffโ Result of processing a key inputto_delete_chars_count: usizeโ Characters to delete from current statediff_add_text: Stringโ Text to insert
-
ScriptTypingDataMapโ Typing data for a script (fromget_script_typing_data_map)common_krama_map: Vec<TypingDataMapItem>โ Common character mappingsscript_specific_krama_map: Vec<TypingDataMapItem>โ Script-specific mappings
-
ListTypeโ Character type enum:Anya,Vyanjana,Matra,Svara -
TypingDataMapItemโ Type alias for(String, ListType, Vec<String>)
๐ฏ Supported Scripts
Devanagari, Bengali, Tamil, Telugu, Kannada, Malayalam, Gujarati, Odia, Gurmukhi, Sinhala, Tamil-Extended, Myanmar, Tibetan, Limbu, and more.
๐ Full list: lipilekhika.in/reference/supported_scripts
๐ง Custom Options
See the full list of custom transliteration options:
๐ lipilekhika.in/reference/custom_trans_options
๐ Resources
- Website โ Documentation and guides
- Supported Scripts โ Full list of scripts
- Custom Options โ Transliteration options reference
- GitHub Repository โ Source code and issues
๐ License
MIT License โ See LICENSE for details