[{"data":1,"prerenderedAt":1097},["ShallowReactive",2],{"navigation_docs_en":3,"-en-getting-started-introduction":173,"-en-getting-started-introduction-surround":1094},[4,30,109,153],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fen\u002Fgetting-started","en\u002F01.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F01.getting-started\u002F1.introduction","i-ph-rocket",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F01.getting-started\u002F2.installation","i-ph-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fen\u002Fgetting-started\u002Fquick-start","en\u002F01.getting-started\u002F3.quick-start","i-ph-play",{"title":25,"path":26,"stem":27,"icon":28},"Live Demo","\u002Fen\u002Fgetting-started\u002Flive-demo","en\u002F01.getting-started\u002F4.live-demo","i-ph-sparkle",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"How To","\u002Fen\u002Fhow-to","en\u002F02.how-to",[35,40,45,50,55,60,65,70,75,79,84,89,94,99,104],{"title":36,"path":37,"stem":38,"icon":39},"Use Rust","\u002Fen\u002Fhow-to\u002Fuse-rust","en\u002F02.how-to\u002F00.use-rust","simple-icons-rust",{"title":41,"path":42,"stem":43,"icon":44},"Use .NET \u002F C#","\u002Fen\u002Fhow-to\u002Fuse-csharp","en\u002F02.how-to\u002F01.use-csharp","simple-icons-dotnet",{"title":46,"path":47,"stem":48,"icon":49},"Use React Native","\u002Fen\u002Fhow-to\u002Fuse-react-native","en\u002F02.how-to\u002F02.use-react-native","simple-icons-react",{"title":51,"path":52,"stem":53,"icon":54},"Use iOS (Swift)","\u002Fen\u002Fhow-to\u002Fuse-ios-swift","en\u002F02.how-to\u002F03.use-ios-swift","simple-icons-apple",{"title":56,"path":57,"stem":58,"icon":59},"Use Android (Kotlin)","\u002Fen\u002Fhow-to\u002Fuse-android-kotlin","en\u002F02.how-to\u002F04.use-android-kotlin","simple-icons-android",{"title":61,"path":62,"stem":63,"icon":64},"Use C FFI","\u002Fen\u002Fhow-to\u002Fuse-c-ffi","en\u002F02.how-to\u002F05.use-c-ffi","simple-icons-c",{"title":66,"path":67,"stem":68,"icon":69},"Use CLI","\u002Fen\u002Fhow-to\u002Fuse-cli","en\u002F02.how-to\u002F06.use-cli","simple-icons-gnubash",{"title":71,"path":72,"stem":73,"icon":74},"Use Web","\u002Fen\u002Fhow-to\u002Fuse-web","en\u002F02.how-to\u002F07.use-web","simple-icons-javascript",{"title":76,"path":77,"stem":78,"icon":49},"Use React","\u002Fen\u002Fhow-to\u002Fuse-react","en\u002F02.how-to\u002F08.use-react",{"title":80,"path":81,"stem":82,"icon":83},"Use Node.js","\u002Fen\u002Fhow-to\u002Fuse-node","en\u002F02.how-to\u002F09.use-node","simple-icons-nodedotjs",{"title":85,"path":86,"stem":87,"icon":88},"Use Python","\u002Fen\u002Fhow-to\u002Fuse-python","en\u002F02.how-to\u002F10.use-python","simple-icons-python",{"title":90,"path":91,"stem":92,"icon":93},"Use Golang","\u002Fen\u002Fhow-to\u002Fuse-golang","en\u002F02.how-to\u002F11.use-golang","simple-icons-go",{"title":95,"path":96,"stem":97,"icon":98},"Use Java & JVM","\u002Fen\u002Fhow-to\u002Fuse-java","en\u002F02.how-to\u002F12.use-java","simple-icons-openjdk",{"title":100,"path":101,"stem":102,"icon":103},"Use Flutter & Dart","\u002Fen\u002Fhow-to\u002Fuse-flutter","en\u002F02.how-to\u002F13.use-flutter","simple-icons-flutter",{"title":105,"path":106,"stem":107,"icon":108},"Use Decoded RGB Input","\u002Fen\u002Fhow-to\u002Fuse-decoded-rgb","en\u002F02.how-to\u002F14.use-decoded-rgb","lucide-image",{"title":110,"path":111,"stem":112,"children":113,"page":29},"Advance Guide","\u002Fen\u002Fadvance-guide","en\u002F03.advance-guide",[114,119,124,129,134,139,144,149],{"title":115,"path":116,"stem":117,"icon":118},"Models & Tiers","\u002Fen\u002Fadvance-guide\u002Fmodels-and-tiers","en\u002F03.advance-guide\u002F01.models-and-tiers","i-ph-cube",{"title":120,"path":121,"stem":122,"icon":123},"Multilingual OCR","\u002Fen\u002Fadvance-guide\u002Fmultilingual-ocr","en\u002F03.advance-guide\u002F02.multilingual-ocr","i-ph-translate",{"title":125,"path":126,"stem":127,"icon":128},"Spatial Layout Reconstruction","\u002Fen\u002Fadvance-guide\u002Fspatial-layout-reconstruction","en\u002F03.advance-guide\u002F03.spatial-layout-reconstruction","i-ph-layout",{"title":130,"path":131,"stem":132,"icon":133},"Image Preprocessing & Tuning","\u002Fen\u002Fadvance-guide\u002Fimage-preprocessing-and-tuning","en\u002F03.advance-guide\u002F04.image-preprocessing-and-tuning","i-ph-sliders",{"title":135,"path":136,"stem":137,"icon":138},"Classification & Orientation","\u002Fen\u002Fadvance-guide\u002Fclassification-and-orientation","en\u002F03.advance-guide\u002F05.classification-and-orientation","i-ph-arrows-clockwise",{"title":140,"path":141,"stem":142,"icon":143},"Performance & Benchmarks","\u002Fen\u002Fadvance-guide\u002Fperformance-and-benchmarks","en\u002F03.advance-guide\u002F06.performance-and-benchmarks","i-ph-chart-line-up",{"title":145,"path":146,"stem":147,"icon":148},"Troubleshooting","\u002Fen\u002Fadvance-guide\u002Ftroubleshooting","en\u002F03.advance-guide\u002F07.troubleshooting","i-ph-wrench",{"title":150,"path":151,"stem":152,"icon":138},"v0.2 to v0.3","\u002Fen\u002Fadvance-guide\u002Fmigration-guide","en\u002F03.advance-guide\u002F08.migration-guide",{"title":154,"path":155,"stem":156,"children":157,"page":29},"Api Reference","\u002Fen\u002Fapi-reference","en\u002F04.api-reference",[158,163,168],{"title":159,"path":160,"stem":161,"icon":162},"InitializeConfig","\u002Fen\u002Fapi-reference\u002Finitialize-config","en\u002F04.api-reference\u002F01.initialize-config","i-ph-code-block",{"title":164,"path":165,"stem":166,"icon":167},"OcrRunOptions","\u002Fen\u002Fapi-reference\u002Focr-run-options","en\u002F04.api-reference\u002F02.ocr-run-options","i-ph-faders",{"title":169,"path":170,"stem":171,"icon":172},"TextResult & Output Modes","\u002Fen\u002Fapi-reference\u002Ftext-result-and-output","en\u002F04.api-reference\u002F03.text-result-and-output","i-ph-textbox",{"id":174,"title":10,"body":175,"description":1086,"extension":1087,"links":1088,"meta":1089,"navigation":1090,"path":11,"seo":1091,"stem":12,"__hash__":1093},"docs_en\u002Fen\u002F01.getting-started\u002F1.introduction.md",{"type":176,"value":177,"toc":1078},"minimark",[178,181,213,218,221,471,474,478,551,553,557,862,864,868,871,1008,1010,1014,1025,1033,1035,1039,1074],[179,180],"project-badges",{},[182,183,184,188,189,196,197,202,203,208,209,212],"p",{},[185,186,187],"strong",{},"RustO!"," is a high-performance Optical Character Recognition (OCR) engine and cross-platform toolkit written in pure Rust. Based on ",[190,191,195],"a",{"href":192,"rel":193},"https:\u002F\u002Fgithub.com\u002FRapidAI\u002FRapidOCR",[194],"nofollow","RapidOCR"," and powered by ",[190,198,201],{"href":199,"rel":200},"https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddleOCR",[194],"PaddleOCR"," deep learning models with pure-Rust ",[190,204,207],{"href":205,"rel":206},"https:\u002F\u002Fgithub.com\u002Frobertknight\u002Frten",[194],"RTen"," lightweight inference backend (and pluggable custom engine architecture), RustO! delivers sub-second inference speeds, ultra-low memory overhead, zero OpenCV runtime dependencies, and ",[185,210,211],{},"99.3%+ accuracy parity"," with native C++ OpenCV implementations.",[214,215,217],"h2",{"id":216},"architecture-pipeline","🎯 Architecture Pipeline",[182,219,220],{},"RustO! orchestrates an end-to-end OCR and layout analysis pipeline optimized for edge devices and high-throughput servers:",[222,223,228],"pre",{"className":224,"code":225,"language":226,"meta":227,"style":227},"language-mermaid shiki shiki-themes material-theme-lighter github-light github-dark monokai","flowchart TD\n    A[\"Input Image Source\u003Cbr\u002F>(Filesystem Path, Bytes Buffer, or Native URI)\"] --> B[\"1. Preprocessing & Bounded Resize\u003Cbr\u002F>(Aspect-Ratio Scaling, Padding, Normalization)\"]\n    B --> C[\"2. DBNet Text Detection\u003Cbr\u002F>(Heatmap, Binarization, Dilation, Contour Unclipping)\"]\n    C --> D{\"3. Line Orientation CLS?\u003Cbr\u002F>(Optional: Inverted 0° vs 180°)\"}\n    D -->|Enabled| E[\"Rotate Upside-Down Text 180°\"]\n    D -->|Bypassed \u002F Disabled| F[\"Perspective Crop & Rayon Parallel Batching\"]\n    E --> F\n    F --> G[\"4. CTC Text Recognition\u003Cbr\u002F>(Batched SVTR\u002FCRNN, 50-Language Dictionary)\"]\n    G --> H{\"Output Granularity?\"}\n    H -->|lines \u002F words| I[\"Structured Output\u003Cbr\u002F>(TextResult with BoxPoints & Frame)\"]\n    H -->|spatial| J[\"5. Spatial Layout Reconstruction\u003Cbr\u002F>(Row Y-Clustering & Column X-Alignment)\"]\n    J --> K[\"Formatted Spatial Text\u003Cbr\u002F>(Preserved Tables, Receipts, Indentations)\"]\n","mermaid","",[229,230,231,244,275,294,314,339,361,372,390,408,431,453],"code",{"__ignoreMap":227},[232,233,236,240],"span",{"class":234,"line":235},"line",1,[232,237,239],{"class":238},"sRxSC","flowchart",[232,241,243],{"class":242},"sD0ED"," TD\n",[232,245,247,251,254,258,261,264,267,269,272],{"class":234,"line":246},2,[232,248,250],{"class":249},"s94S9","    A",[232,252,253],{"class":238},"[",[232,255,257],{"class":256},"sLACW","\"Input Image Source\u003Cbr\u002F>(Filesystem Path, Bytes Buffer, or Native URI)\"",[232,259,260],{"class":238},"]",[232,262,263],{"class":238}," -->",[232,265,266],{"class":249}," B",[232,268,253],{"class":238},[232,270,271],{"class":256},"\"1. Preprocessing & Bounded Resize\u003Cbr\u002F>(Aspect-Ratio Scaling, Padding, Normalization)\"",[232,273,274],{"class":238},"]\n",[232,276,278,281,284,287,289,292],{"class":234,"line":277},3,[232,279,280],{"class":249},"    B ",[232,282,283],{"class":238},"-->",[232,285,286],{"class":249}," C",[232,288,253],{"class":238},[232,290,291],{"class":256},"\"2. DBNet Text Detection\u003Cbr\u002F>(Heatmap, Binarization, Dilation, Contour Unclipping)\"",[232,293,274],{"class":238},[232,295,297,300,302,305,308,311],{"class":234,"line":296},4,[232,298,299],{"class":249},"    C ",[232,301,283],{"class":238},[232,303,304],{"class":249}," D",[232,306,307],{"class":238},"{",[232,309,310],{"class":256},"\"3. Line Orientation CLS?\u003Cbr\u002F>(Optional: Inverted 0° vs 180°)\"",[232,312,313],{"class":238},"}\n",[232,315,317,320,323,326,329,332,334,337],{"class":234,"line":316},5,[232,318,319],{"class":249},"    D ",[232,321,322],{"class":238},"-->|",[232,324,325],{"class":256},"Enabled",[232,327,328],{"class":238},"|",[232,330,331],{"class":249}," E",[232,333,253],{"class":238},[232,335,336],{"class":256},"\"Rotate Upside-Down Text 180°\"",[232,338,274],{"class":238},[232,340,342,344,346,349,351,354,356,359],{"class":234,"line":341},6,[232,343,319],{"class":249},[232,345,322],{"class":238},[232,347,348],{"class":256},"Bypassed \u002F Disabled",[232,350,328],{"class":238},[232,352,353],{"class":249}," F",[232,355,253],{"class":238},[232,357,358],{"class":256},"\"Perspective Crop & Rayon Parallel Batching\"",[232,360,274],{"class":238},[232,362,364,367,369],{"class":234,"line":363},7,[232,365,366],{"class":249},"    E ",[232,368,283],{"class":238},[232,370,371],{"class":249}," F\n",[232,373,375,378,380,383,385,388],{"class":234,"line":374},8,[232,376,377],{"class":249},"    F ",[232,379,283],{"class":238},[232,381,382],{"class":249}," G",[232,384,253],{"class":238},[232,386,387],{"class":256},"\"4. CTC Text Recognition\u003Cbr\u002F>(Batched SVTR\u002FCRNN, 50-Language Dictionary)\"",[232,389,274],{"class":238},[232,391,393,396,398,401,403,406],{"class":234,"line":392},9,[232,394,395],{"class":249},"    G ",[232,397,283],{"class":238},[232,399,400],{"class":249}," H",[232,402,307],{"class":238},[232,404,405],{"class":256},"\"Output Granularity?\"",[232,407,313],{"class":238},[232,409,411,414,416,419,421,424,426,429],{"class":234,"line":410},10,[232,412,413],{"class":249},"    H ",[232,415,322],{"class":238},[232,417,418],{"class":256},"lines \u002F words",[232,420,328],{"class":238},[232,422,423],{"class":249}," I",[232,425,253],{"class":238},[232,427,428],{"class":256},"\"Structured Output\u003Cbr\u002F>(TextResult with BoxPoints & Frame)\"",[232,430,274],{"class":238},[232,432,434,436,438,441,443,446,448,451],{"class":234,"line":433},11,[232,435,413],{"class":249},[232,437,322],{"class":238},[232,439,440],{"class":256},"spatial",[232,442,328],{"class":238},[232,444,445],{"class":249}," J",[232,447,253],{"class":238},[232,449,450],{"class":256},"\"5. Spatial Layout Reconstruction\u003Cbr\u002F>(Row Y-Clustering & Column X-Alignment)\"",[232,452,274],{"class":238},[232,454,456,459,461,464,466,469],{"class":234,"line":455},12,[232,457,458],{"class":249},"    J ",[232,460,283],{"class":238},[232,462,463],{"class":249}," K",[232,465,253],{"class":238},[232,467,468],{"class":256},"\"Formatted Spatial Text\u003Cbr\u002F>(Preserved Tables, Receipts, Indentations)\"",[232,470,274],{"class":238},[472,473],"hr",{},[214,475,477],{"id":476},"key-highlights-advantages","⚡ Key Highlights & Advantages",[479,480,481,488,494,500,518,524],"ul",{},[482,483,484,487],"li",{},[185,485,486],{},"🚀 100% Pure Rust Core",": Zero OpenCV runtime dependency. Binarization, contour tracing, polygon clipping, and affine transformations are implemented in memory-safe Rust with SIMD acceleration.",[482,489,490,493],{},[185,491,492],{},"📦 Ultra-Small Footprint",": Core binaries are ~5 MB (self-contained) compared to 50+ MB for traditional OpenCV + ONNX runtime stacks.",[482,495,496,499],{},[185,497,498],{},"📄 Human-Readable Spatial Layouts",": Native support for reconstructing invoices, receipts, multi-column tables, and forms directly into visually formatted text.",[482,501,502,505,506,509,510,513,514,517],{},[185,503,504],{},"🧠 Supported Model Ecosystem",": Built-in support for ",[185,507,508],{},"PP-OCRv6"," (Tiny, Small, Medium), ",[185,511,512],{},"PP-OCRv5"," (Mobile, Server), and ",[185,515,516],{},"PP-OCRv4"," (Mobile, Server) architectures.",[482,519,520,523],{},[185,521,522],{},"🌐 50+ Languages in One Model",": PP-OCRv6 uses a unified dictionary supporting Latin, Cyrillic, CJK, Devanagari, Arabic, and more simultaneously.",[482,525,526,529,530,533,534,533,537,533,540,533,543,546,547,550],{},[185,527,528],{},"📱 Universal Multi-Platform SDKs",": First-class support for ",[185,531,532],{},"Rust",", ",[185,535,536],{},".NET \u002F C#",[185,538,539],{},"React Native",[185,541,542],{},"iOS (Swift)",[185,544,545],{},"Android (Kotlin)",", and ",[185,548,549],{},"C FFI",".",[472,552],{},[214,554,556],{"id":555},"supported-platforms-ecosystem","📦 Supported Platforms & Ecosystem",[558,559,560,577],"table",{},[561,562,563],"thead",{},[564,565,566,571,574],"tr",{},[567,568,570],"th",{"align":569},"left","Platform",[567,572,573],{"align":569},"Target Package \u002F Registry",[567,575,576],{"align":569},"Support Matrix",[578,579,580,602,622,642,657,677,697,716,731,746,764,788,806,825,846],"tbody",{},[564,581,582,587,599],{},[583,584,585],"td",{"align":569},[185,586,532],{},[583,588,589,592,593,598],{"align":569},[229,590,591],{},"cargo add rusto-rs"," (",[190,594,597],{"href":595,"rel":596},"https:\u002F\u002Fcrates.io\u002Fcrates\u002Frusto-rs",[194],"crates.io",")",[583,600,601],{"align":569},"Linux, macOS, Windows, Android (NDK), iOS",[564,603,604,609,619],{},[583,605,606],{"align":569},[185,607,608],{},"Node.js (N-API)",[583,610,611,592,614,598],{"align":569},[229,612,613],{},"npm install @rustors\u002Fnode",[190,615,618],{"href":616,"rel":617},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@rustors\u002Fnode",[194],"npm",[583,620,621],{"align":569},"Node.js 18+ (Linux, macOS, Windows)",[564,623,624,629,639],{},[583,625,626],{"align":569},[185,627,628],{},"Python",[583,630,631,592,634,598],{"align":569},[229,632,633],{},"pip install rusto",[190,635,638],{"href":636,"rel":637},"https:\u002F\u002Fpypi.org\u002Fproject\u002Frusto",[194],"PyPI",[583,640,641],{"align":569},"Python 3.9+ (x86_64, aarch64, Apple Silicon)",[564,643,644,649,654],{},[583,645,646],{"align":569},[185,647,648],{},"Golang",[583,650,651],{"align":569},[229,652,653],{},"go get github.com\u002Fbyrizki\u002Frusto-rs\u002Fpackages\u002Fgo",[583,655,656],{"align":569},"Go 1.21+ via Cgo (embedded rpath)",[564,658,659,664,674],{},[583,660,661],{"align":569},[185,662,663],{},"Java (JVM)",[583,665,666,592,669,598],{"align":569},[229,667,668],{},"com.github.byrizki.rusto-rs:rusto-java",[190,670,673],{"href":671,"rel":672},"https:\u002F\u002Fjitpack.io\u002F#byrizki\u002Frusto-rs",[194],"JitPack",[583,675,676],{"align":569},"Java 17+, Kotlin, Scala via JNA",[564,678,679,684,694],{},[583,680,681],{"align":569},[185,682,683],{},"Dart",[583,685,686,592,689,598],{"align":569},[229,687,688],{},"dart pub add rusto",[190,690,693],{"href":691,"rel":692},"https:\u002F\u002Fpub.dev\u002Fpackages\u002Frusto",[194],"pub.dev",[583,695,696],{"align":569},"Dart 3.0+ on Desktop & Server",[564,698,699,704,713],{},[583,700,701],{"align":569},[185,702,703],{},"Flutter",[583,705,706,592,709,598],{"align":569},[229,707,708],{},"flutter pub add rusto_flutter",[190,710,693],{"href":711,"rel":712},"https:\u002F\u002Fpub.dev\u002Fpackages\u002Frusto_flutter",[194],[583,714,715],{"align":569},"Android, iOS, Desktop",[564,717,718,723,728],{},[583,719,720],{"align":569},[185,721,722],{},"Web (WASM)",[583,724,725],{"align":569},[229,726,727],{},"npm install @rustors\u002Fweb",[583,729,730],{"align":569},"Modern Browsers, Cloudflare Workers, WASM",[564,732,733,738,743],{},[583,734,735],{"align":569},[185,736,737],{},"React",[583,739,740],{"align":569},[229,741,742],{},"npm install @rustors\u002Freact",[583,744,745],{"align":569},"React 18+, Next.js, Vite",[564,747,748,752,761],{},[583,749,750],{"align":569},[185,751,539],{},[583,753,754,592,757,598],{"align":569},[229,755,756],{},"npm install @rustors\u002Freact-native",[190,758,618],{"href":759,"rel":760},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@rustors\u002Freact-native",[194],[583,762,763],{"align":569},"React Native 0.70+ (New Arch & Legacy)",[564,765,766,771,785],{},[583,767,768],{"align":569},[185,769,770],{},"iOS",[583,772,773,776,777,592,780,598],{"align":569},[229,774,775],{},"Package.swift"," \u002F ",[229,778,779],{},"pod 'RustO'",[190,781,784],{"href":782,"rel":783},"https:\u002F\u002Fcocoapods.org\u002Fpods\u002FRustO",[194],"CocoaPods",[583,786,787],{"align":569},"iOS 13.0+, Mac Catalyst (SPM & CocoaPods)",[564,789,790,795,803],{},[583,791,792],{"align":569},[185,793,794],{},"Android",[583,796,797,592,800,598],{"align":569},[229,798,799],{},"com.github.byrizki.rusto-rs:rusto-android",[190,801,673],{"href":671,"rel":802},[194],[583,804,805],{"align":569},"Android API 21+ (ARM64-v8a, ARMv7a, x86_64, x86)",[564,807,808,812,822],{},[583,809,810],{"align":569},[185,811,536],{},[583,813,814,592,817,598],{"align":569},[229,815,816],{},"dotnet add package RustODotnet",[190,818,821],{"href":819,"rel":820},"https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FRustODotnet",[194],"NuGet",[583,823,824],{"align":569},".NET 6.0+, .NET 8.0+, .NET Standard 2.0+",[564,826,827,832,843],{},[583,828,829],{"align":569},[185,830,831],{},"C \u002F Native",[583,833,834,776,837,776,840],{"align":569},[229,835,836],{},"librusto.so",[229,838,839],{},"librusto.dylib",[229,841,842],{},"rusto.dll",[583,844,845],{"align":569},"C99 \u002F C++11 and any foreign runtime with C FFI",[564,847,848,853,859],{},[583,849,850],{"align":569},[185,851,852],{},"CLI",[583,854,855,858],{"align":569},[229,856,857],{},"rusto"," binary",[583,860,861],{"align":569},"Standalone command-line tool for desktop & CI pipelines",[472,863],{},[214,865,867],{"id":866},"performance-parity-comparison","📊 Performance & Parity Comparison",[182,869,870],{},"Benchmarks conducted on standard document scans (A4 invoice, 150 DPI) on an AMD Ryzen 7 \u002F Apple M-series CPU:",[558,872,873,889],{},[561,874,875],{},[564,876,877,880,883,886],{},[567,878,879],{},"Metric",[567,881,882],{},"RustO! (Pure Rust + RTen)",[567,884,885],{},"Traditional OpenCV + C++ Pipeline",[567,887,888],{},"Advantage",[578,890,891,912,932,950,971,992],{},[564,892,893,898,903,906],{},[583,894,895],{},[185,896,897],{},"Detection Speed",[583,899,900],{},[185,901,902],{},"~80 ms",[583,904,905],{},"~85 ms",[583,907,908,909],{},"⚡ ",[185,910,911],{},"6% faster",[564,913,914,919,924,927],{},[583,915,916],{},[185,917,918],{},"Recognition Speed",[583,920,921],{},[185,922,923],{},"~120 ms",[583,925,926],{},"~125 ms",[583,928,908,929],{},[185,930,931],{},"4% faster",[564,933,934,939,944,947],{},[583,935,936],{},[185,937,938],{},"Accuracy Parity",[583,940,941],{},[185,942,943],{},"99.3%+",[583,945,946],{},"Baseline (100%)",[583,948,949],{},"🎯 Identical bounding boxes",[564,951,952,957,962,965],{},[583,953,954],{},[185,955,956],{},"Binary Footprint",[583,958,959],{},[185,960,961],{},"~5 MB",[583,963,964],{},"~55 MB+ (libopencv, onnxruntime)",[583,966,967,968],{},"📦 ",[185,969,970],{},"90% reduction",[564,972,973,978,983,986],{},[583,974,975],{},[185,976,977],{},"Peak Memory (RAM)",[583,979,980],{},[185,981,982],{},"~120 MB",[583,984,985],{},"~260 MB+",[583,987,988,989],{},"🔒 ",[185,990,991],{},"54% lower memory",[564,993,994,999,1002,1005],{},[583,995,996],{},[185,997,998],{},"Safety",[583,1000,1001],{},"Memory-safe (Rust guarantees)",[583,1003,1004],{},"Manual pointers \u002F potential leaks",[583,1006,1007],{},"🛡️ Zero memory bugs",[472,1009],{},[214,1011,1013],{"id":1012},"️-security-continuous-monitoring","🛡️ Security & Continuous Monitoring",[182,1015,1016,1017,1024],{},"RustO! is actively monitored and protected with the support of the ",[185,1018,1019],{},[190,1020,1023],{"href":1021,"rel":1022},"https:\u002F\u002Fsnyk.io\u002Fopen-source\u002F",[194],"Snyk Open Source Program",". Snyk provides automated developer security tooling that continuously tests our pure Rust core engine, dependencies, container images, and multi-platform packages for known vulnerabilities.",[182,1026,1027,1028,550],{},"For details on our vulnerability disclosure policy, see our ",[190,1029,1032],{"href":1030,"rel":1031},"https:\u002F\u002Fgithub.com\u002Fbyrizki\u002Frusto-rs\u002Fblob\u002Fmain\u002FSECURITY.md",[194],"Security Policy",[472,1034],{},[214,1036,1038],{"id":1037},"next-steps","Next Steps",[479,1040,1041,1048,1055,1062],{},[482,1042,1043,1047],{},[190,1044,1046],{"href":1045},".\u002Finstallation","Installation Guide"," — Set up RustO! on your preferred platform.",[482,1049,1050,1054],{},[190,1051,1053],{"href":1052},".\u002Fquick-start","Quick Start Tutorial"," — Run your first OCR scan in under 5 minutes.",[482,1056,1057,1061],{},[190,1058,1060],{"href":1059},"..\u002Fhow-to\u002Fuse-rust","How-To Guides"," — Deep-dive tutorials for each programming language.",[482,1063,1064,1068,1069,1071,1072,550],{},[190,1065,1067],{"href":1066},"..\u002Fapi-reference\u002Finitialize-config","API Reference"," — Complete specifications for ",[229,1070,159],{}," and ",[229,1073,164],{},[1075,1076,1077],"style",{},"html pre.shiki code .sRxSC, html code.shiki .sRxSC{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#F92672;--shiki-sepia-font-style:inherit}html pre.shiki code .sD0ED, html code.shiki .sD0ED{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .s94S9, html code.shiki .s94S9{--shiki-light:#90A4AE;--shiki-default:#E36209;--shiki-dark:#FFAB70;--shiki-sepia:#F8F8F2}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":227,"searchDepth":246,"depth":246,"links":1079},[1080,1081,1082,1083,1084,1085],{"id":216,"depth":246,"text":217},{"id":476,"depth":246,"text":477},{"id":555,"depth":246,"text":556},{"id":866,"depth":246,"text":867},{"id":1012,"depth":246,"text":1013},{"id":1037,"depth":246,"text":1038},"High-Performance Pure Rust OCR Library & Multi-Platform Toolkit","md",null,{},{"icon":13},{"title":1092,"description":1086},"Introduction - RustO!","xoIAB7-CNQ0zN6wcQZRjwP-F4b4KlUDjVCXlt8jpVZw",[1088,1095],{"title":15,"path":16,"stem":17,"description":1096,"icon":18,"children":-1},"How to install RustO! across Rust, Node.js, Python, Go, Java, Flutter, .NET, React Native, iOS, Android, and Native C FFI.",1792905887491]