Fun with Rust
Why Rust for building a Desktop client ?
Rust was chosen for developing the desktop OCR client due to its unique combination of performance, safety, and low-level control. While Java and Python are popular languages, they often come with higher overhead and slower execution compared to Rust. Rust’s memory safety features, such as ownership and borrowing, minimize the risk of bugs and crashes, crucial for a robust OCR application. Additionally, Rust’s ability to interact with C/C++ libraries seamlessly provides access to efficient image processing libraries, enhancing performance. With Rust’s focus on zero-cost abstractions and a strong type system, it offers the speed required for real-time OCR tasks, making it a compelling choice for a high-performance desktop client.
For OCR, I explored a few crates ranging from Hugging Face to Tessearct along with a few Native libraries availble through the OSX bundle. I finally decided to go with Tessearct because I could utilize the same code across all platforms and avoid native intricacies all together.