How To
Menggunakan Golang
Menggunakan engine RustO! murni Rust pada aplikasi Go via Cgo.
Modul github.com/byrizki/rusto-rs/packages/go menyediakan binding native Go via Cgo dengan konfigurasi dynamic linker bawaan (-Wl,-rpath), sehingga binary aplikasi dan unit test dapat menemukan librusto tanpa perlu menyetel LD_LIBRARY_PATH.
Instalasi
go get github.com/byrizki/rusto-rs/packages/go
Pastikan pustaka bersama librusto.so (Linux), librusto.dylib (macOS), atau rusto.dll (Windows) tersedia pada sistem Anda.
1. Inisialisasi Engine
package main
import (
"encoding/json"
"fmt"
"log"
"github.com/byrizki/rusto-rs/packages/go"
)
func main() {
config := map[string]interface{}{
"detection": map[string]string{
"model_path": "models/PPOCR_v6/det.rten",
},
"recognition": map[string]string{
"model_path": "models/PPOCR_v6/rec.rten",
"dict_path": "models/PPOCR_v6/dict.txt",
},
}
configBytes, _ := json.Marshal(config)
engine, err := rusto.New(string(configBytes))
if err != nil {
log.Fatalf("Gagal inisialisasi RustO: %v", err)
}
defer engine.Close()
// Deteksi teks terstruktur
results, err := engine.DetectTextFile("receipt.jpg", "{}")
if err != nil {
log.Fatalf("Deteksi gagal: %v", err)
}
for _, item := range results {
fmt.Printf("[%0.2f] %s\n", item.Score, item.Text)
}
}