Getting Started

Pengenalan

Pustaka OCR Berperforma Tinggi Berbasis Rust Murni & Toolkit Multi-Platform
Crates.iodocs.rsPyPInpm (node)pub.dev (dart)pub.dev (flutter)NuGetnpm (react-native)CocoaPodsJitPackLibrary CIDocs CIBuild & ReleaseLicenseKnown Vulnerabilities

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:

Rendering diagram...

⚑ 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

PlatformPaket Target / RegistryMatriks Dukungan
Rustcargo 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)
Pythonpip install rusto (PyPI)Python 3.9+ (x86_64, aarch64, Apple Silicon)
Golanggo get github.com/byrizki/rusto-rs/packages/goGo 1.21+ via Cgo (embedded rpath)
Java (JVM)com.github.byrizki.rusto-rs:rusto-java (JitPack)Java 17+, Kotlin, Scala via JNA
Dartdart pub add rusto (pub.dev)Dart 3.0+ Desktop & Server
Flutterflutter pub add rusto_flutter (pub.dev)Android, iOS, Desktop
Web (WASM)npm install @rustors/webBrowser modern, Cloudflare Workers, WASM
Reactnpm install @rustors/reactReact 18+, Next.js, Vite
React Nativenpm install @rustors/react-native (npm)React Native 0.70+ (Arsitektur Baru & Lama)
iOSPackage.swift / pod 'RustO' (CocoaPods)iOS 13.0+, Mac Catalyst (SPM & CocoaPods)
Androidcom.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 / Nativelibrusto.so / librusto.dylib / rusto.dllC99 / C++11 dan semua runtime dengan C FFI
CLIBiner rustoAplikasi 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:

MetrikRustO! (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 Akurasi99.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
KeamananMemory-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