Bamboo Core (Rust)
A high-performance Vietnamese input method engine (IME) core written in Rust, ported from bamboo-core (Go).
Features
- Telex, VNI, VIQR input methods with custom input method support
- Hybrid engine: Rule-based transformations + Lazy JIT DFA caching
- Zero heap allocation in core processing path (stack-allocated buffers)
- O(1) backspace via snapshot stack
- O(N) single-pass spelling validation
- FFI for C/C++ integration and WASM bindings
Installation
[]
= "0.3.8"
Quick Start
use ;
let mut engine = new;
let word = engine.process;
assert_eq!;
engine.reset;
let word2 = engine.process;
assert_eq!;
Incremental Processing
Process keystrokes one at a time for IME integration:
use ;
let mut engine = new;
engine.process_key;
engine.process_key;
engine.process_key;
engine.process_key;
engine.process_key;
engine.process_key;
engine.process_key;
assert_eq!;
Delta Updates
For efficient text editor integration, use process_key_delta to get only the diff:
use ;
let mut engine = new;
let = engine.process_key_delta;
// backspaces = 0, inserted = "a"
let = engine.process_key_delta;
// backspaces = 1, inserted = "á" (replaces "a" with "á")
Backspace
use ;
let mut engine = new;
engine.process_str;
assert_eq!;
engine.remove_last_char;
assert_eq!;
Output Customization
use ;
let mut engine = new;
engine.process_str;
// Toneless
assert_eq!;
// Full text (committed + active)
assert_eq!;
Credits
- Rust Port & Optimization: Dao Trong Nguyen (@nguyen10t2)
- Original Author (Go): Lam (@lamtq)
- Technical Consultant: Mai Tan Phat (@phatMT97) - Author of VKey
License
MIT. See LICENSE.