Getting Started

Instalasi

Cara memasang RustO! di Rust, Node.js, Python, Go, Java, Flutter, .NET, React Native, iOS, Android, dan Native C FFI.

RustO! dikemas secara modular di berbagai ekosistem manajer paket bahasa. Pilih target lingkungan pengembangan Anda di bawah ini.

1. Rust (Cargo.toml)

Tambahkan rusto-rs via cargo:

cargo add rusto-rs

Atau definisikan langsung pada file Cargo.toml:

[dependencies]
rusto-rs = "0.3.2"

Fitur Opsional Cargo

FiturDeskripsi
ffiMengaktifkan C FFI dan JNI bindings untuk mengintegrasikan RustO! ke runtime bahasa lain.
use-opencvMengaktifkan backend OpenCV opsional untuk pengujian komparasi dan verifikasi paritas visual.
metalMengaktifkan akselerasi Apple Metal GPU di macOS dan iOS.
coremlMengaktifkan backend Apple CoreML neural engine di perangkat Apple Silicon.
vulkanMengaktifkan akselerasi Vulkan compute shader untuk GPU modern di Linux/Windows/Android.
openclMengaktifkan akselerasi OpenCL pada GPU yang kompatibel.
cudaMengaktifkan akselerasi NVIDIA CUDA di Linux/Windows.
nnapiMengaktifkan akselerasi Android Neural Networks API pada chipset perangkat yang didukung.

2. Node.js (npm / yarn / pnpm)

Pasang @rustors/node via manajer paket pilihan Anda:

npm install @rustors/node
# atau yarn add @rustors/node
# atau pnpm add @rustors/node

Biner native N-API yang telah dirakit secara otomatis terdeteksi untuk Linux (x64/arm64), macOS (Apple Silicon & Intel), dan Windows (x64).


3. Python (pip / PyPI)

Pasang wheel pra-rakit dari PyPI:

pip install rusto

Mendukung Python 3.9+ di seluruh lingkungan Linux, macOS, dan Windows.


4. Golang (Cgo)

Unduh paket Go:

go get github.com/byrizki/rusto-rs/packages/go

Catatan: Kompilasi membutuhkan library bersama librusto. Atur CGO_LDFLAGS="-L/path/to/lib -Wl,-rpath,/path/to/lib" atau tempatkan librusto.so / librusto.dylib ke dalam path library sistem Anda.


5. Java / JVM (JitPack / Gradle / Maven)

Tambahkan rusto-java dari JitPack menggunakan Gradle:

repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'com.github.byrizki.rusto-rs:rusto-java:0.3.2'
}

Atau Maven:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.github.byrizki.rusto-rs</groupId>
    <artifactId>rusto-java</artifactId>
    <version>0.3.2</version>
</dependency>

6. Flutter & Dart (pub.dev)

Untuk Aplikasi Mobile & Desktop Flutter

flutter pub add rusto_flutter

Untuk CLI Server / Dart Murni

dart pub add rusto

7. .NET / C# (NuGet)

Pasang paket inti dari NuGet:

dotnet add package RustODotnet

Paket Bundel Model

Untuk menyertakan model bawaan yang ringan tanpa perlu mengelola file aset model secara manual, pasang salah satu paket model resmi:

# Model default yang direkomendasikan: PP-OCRv6 Tiny (~6 MB total)
dotnet add package RustODotnet.Models.PPOCRv6.Tiny

# Atau paket model bahasa/tingkat khusus:
dotnet add package RustODotnet.Models.PPOCRv6.Small
dotnet add package RustODotnet.Models.PPOCRv5.Latin
dotnet add package RustODotnet.Models.PPOCRv4.Japanese

8. React Native (npm / yarn / pnpm)

Pasang paket React Native npm:

npm install @rustors/react-native

Konfigurasi iOS (ios/Podfile)

Tambahkan pod model OCR pilihan Anda di dalam target aplikasi pada ios/Podfile:

target 'YourApp' do
  pod 'RustO-Models-PPOCRv6-Tiny' # ~6 MB (Direkomendasikan)
end

Kemudian jalankan instalasi CocoaPods:

cd ios && pod install

Konfigurasi Android (android/app/build.gradle)

Pada root settings.gradle, pastikan repositori JitPack sudah ditambahkan:

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

Pada android/app/build.gradle, tambahkan dependensi paket model:

dependencies {
    implementation 'com.github.byrizki.rusto-rs:rusto-models-ppocrv6-tiny:0.3.2'
}

9. iOS (Swift / CocoaPods & SPM)

Swift Package Manager (SPM)

Di Xcode, pilih File > Add Package Dependencies... dan masukkan:

https://github.com/byrizki/rusto-rs.git

Atau dalam file Package.swift:

dependencies: [
    .package(url: "https://github.com/byrizki/rusto-rs.git", from: "0.3.2")
]

CocoaPods

Pada file Podfile proyek Anda:

target 'YourApp' do
  use_frameworks!

  pod 'RustO'
  pod 'RustO-Models-PPOCRv6-Tiny'
end

Jalankan perintah pod install.


10. Android (Kotlin / Gradle)

Pastikan repositori JitPack terdaftar pada settings.gradle:

repositories {
    maven { url 'https://jitpack.io' }
}

Tambahkan pustaka inti dan paket model pada build.gradle aplikasi Anda:

dependencies {
    implementation 'com.github.byrizki.rusto-rs:rusto-android:0.3.2'
    implementation 'com.github.byrizki.rusto-rs:rusto-models-ppocrv6-tiny:0.3.2'
}

11. Web & React (WASM)

# Library Web WASM Inti
npm install @rustors/web

# React Hooks & Komponen
npm install @rustors/react

12. C / Native Shared Libraries & Headers

Pustaka bersama dinamis pra-rakit dan file header C dirilis pada setiap GitHub Release:

  • Linux: librusto.so (x86_64, aarch64)
  • macOS: librusto.dylib (Universal arm64 + x86_64)
  • Windows: rusto.dll, rusto.lib (x64, arm64)
  • Header C: rusto.h

Untuk melakukan kompilasi dari kode sumber dengan fitur FFI aktif:

cargo build --release --features ffi

File pustaka dinamis dan statis hasil kompilasi akan berada di direktori target/release/.