Pengenalan
RustO! adalah mesin Optical Character Recognition (OCR) berperforma tinggi dan toolkit lintas-platform yang ditulis dalam bahasa Rust murni. Berbasis RapidOCR dan ditenagai oleh model deep learning PaddleOCR dengan mesin inferensi ringan Rust murni RTen (serta arsitektur komposisi mesin kustom yang mudah diganti), RustO! menghadirkan kecepatan inferensi sub-detik, konsumsi memori sangat rendah, bebas dari ketergantungan runtime OpenCV, dan mencapai paritas akurasi 99.3%+ dibandingkan implementasi C++ OpenCV bawaan.
π― Alur Arsitektur Pipeline
RustO! mengorkestrasi pipeline OCR dan analisis tata letak visual dari ujung ke ujung (end-to-end) yang dioptimalkan untuk perangkat edge dan server berkecepatan tinggi:
β‘ Keunggulan Utama
- π Inti Rust 100% Murni: Tanpa dependensi OpenCV. Binarisasi gambar, pelacakan kontur, polygon clipping, dan transformasi afinitas diimplementasikan dalam Rust yang aman memori dengan akselerasi SIMD.
- π¦ Ukuran Biner Sangat Ringkas: Biner mandiri berukuran ~5 MB, dibandingkan 50+ MB pada tumpukan OpenCV + ONNX runtime tradisional.
- π Rekonstruksi Tata Letak Spasial: Dukungan bawaan untuk merekonstruksi struk, faktur (invoice), tabel multikolom, dan formulir langsung menjadi teks yang terformat rapi.
- π§ Ekosistem Model Lengkap: Dukungan langsung untuk arsitektur PP-OCRv6 (Tiny, Small, Medium), PP-OCRv5 (Mobile, Server), dan PP-OCRv4 (Mobile, Server).
- π 50+ Bahasa dalam Satu Model: PP-OCRv6 menggunakan kamus terpadu yang mendukung alfabet Latin, Sirilik, CJK (Mandarin/Jepang/Korea), Dewanagari, Arab, dan lainnya secara bersamaan.
- π± SDK Lintas Platform: Paket siap pakai untuk Rust, .NET / C#, React Native, iOS (Swift), Android (Kotlin), dan C FFI.
π¦ Ekosistem Paket & Platform yang Didukung
| Platform | Paket Target / Registry | Matriks Dukungan |
|---|---|---|
| Rust | cargo add rusto-rs (crates.io) | Linux, macOS, Windows, Android (NDK), iOS |
| Node.js (N-API) | npm install @rustors/node (npm) | Node.js 18+ (Linux, macOS, Windows) |
| Python | pip install rusto (PyPI) | Python 3.9+ (x86_64, aarch64, Apple Silicon) |
| Golang | go get github.com/byrizki/rusto-rs/packages/go | Go 1.21+ via Cgo (embedded rpath) |
| Java (JVM) | com.github.byrizki.rusto-rs:rusto-java (JitPack) | Java 17+, Kotlin, Scala via JNA |
| Dart | dart pub add rusto (pub.dev) | Dart 3.0+ Desktop & Server |
| Flutter | flutter pub add rusto_flutter (pub.dev) | Android, iOS, Desktop |
| Web (WASM) | npm install @rustors/web | Browser modern, Cloudflare Workers, WASM |
| React | npm install @rustors/react | React 18+, Next.js, Vite |
| React Native | npm install @rustors/react-native (npm) | React Native 0.70+ (Arsitektur Baru & Lama) |
| iOS | Package.swift / pod 'RustO' (CocoaPods) | iOS 13.0+, Mac Catalyst (SPM & CocoaPods) |
| Android | com.github.byrizki.rusto-rs:rusto-android (JitPack) | Android API 21+ (ARM64-v8a, ARMv7a, x86_64, x86) |
| .NET / C# | dotnet add package RustODotnet (NuGet) | .NET 6.0+, .NET 8.0+, .NET Standard 2.0+ |
| C / Native | librusto.so / librusto.dylib / rusto.dll | C99 / C++11 dan semua runtime dengan C FFI |
| CLI | Biner rusto | Aplikasi CLI mandiri untuk desktop & automasi CI |
π Perbandingan Kinerja & Paritas Akurasi
Pengujian dilakukan pada dokumen invoice standar (A4, 150 DPI) pada CPU AMD Ryzen 7 / Apple M-series:
| Metrik | RustO! (Rust Murni + RTen) | Pipeline Tradisional OpenCV + C++ | Keunggulan |
|---|---|---|---|
| Kecepatan Deteksi | ~80 ms | ~85 ms | β‘ 6% lebih cepat |
| Kecepatan Pengenalan | ~120 ms | ~125 ms | β‘ 4% lebih cepat |
| Paritas Akurasi | 99.3%+ | Tolok Ukur (100%) | π― Kotak batas identik |
| Ukuran Biner | ~5 MB | ~55 MB+ (libopencv, onnxruntime) | π¦ Hemat 90% |
| Puncak Memori (RAM) | ~120 MB | ~260 MB+ | π Hemat 54% memori |
| Keamanan | Memory-safe (Jaminan Rust) | Manajemen pointer manual | π‘οΈ Nol celah memory leak |
π‘οΈ Keamanan & Pemantauan Berkelanjutan
RustO! dipantau dan diamankan secara aktif dengan dukungan Snyk Open Source Program. Snyk menyediakan perkakas keamanan pengembang otomatis untuk memindai kerentanan secara berkala pada modul inti Rust, dependensi pihak ketiga, citra kontainer, dan paket multi-platform.
Untuk informasi kebijakan pengungkapan kerentanan, lihat Kebijakan Keamanan (Security Policy).
Langkah Selanjutnya
- Panduan Instalasi β Pasang RustO! pada platform pilihan Anda.
- Panduan Memulai Cepat β Jalankan pemindaian OCR pertama Anda dalam 5 menit.
- Panduan Penggunaan Bahasa β Tutorial mendalam untuk setiap bahasa pemrograman.
- Referensi API β Spesifikasi lengkap
InitializeConfigdanOcrRunOptions.