Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Cargo feature flags for crates/xberg — ORT-incompatible targets (WASM, Android x86_64 emulator), type-only and tract inference companion features, WASM/Android-safe variants, PDF backend, mutually-exclusive ORT variants, platform-conditional deps, aggregate feature sets, and build profiles. Load when adding, wiring, or debugging a Cargo feature, or when reasoning about what compiles on WASM/Android/Windows/macOS-intel targets.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -45% | 0% |
All features in crates/xberg/Cargo.toml.
Only ORT-dependent paths are incompatible. The same paths block both WASM (no native ORT linkage at all) and the x86_64-linux-android emulator triple (no pyke prebuilt; aarch64-linux-android does ship a prebuilt and gets full ORT):
paddle-ocr — ONNX Runtime + native C++ deps: not WASM-safe; no Android x86_64 prebuiltlayout-detection — depends on ONNX Runtime layout models: not WASM-safe; no Android x86_64 prebuilt (RT-DETR + table classifier are available off-ORT via the layout-tract sibling, below)embeddings — depends on ONNX Runtime sentence-transformer models: not WASM-safe; no Android x86_64 prebuiltauto-rotate — depends on ONNX Runtime orientation classifier: not WASM-safe; no Android x86_64 prebuilt (available off-ORT via the auto-rotate-tract sibling, below)Pure-Rust type-only companion features expose the public config/result types for the above without pulling in ORT:
layout-types — LayoutDetectionConfig, TableModel, BBox, DetectionResult, LayoutClass, LayoutDetection, RecognizedTable. layout-detection implies layout-types.auto-rotate-types — OrientationResult. auto-rotate implies auto-rotate-types.embedding-presets — EmbeddingPreset (already existed; pure-Rust preset metadata).Pure-Rust tract inference variants run select ONNX models where native ORT cannot link, loading the same .onnx artifacts through the tract engine (CPU-only, no native library):
layout-detection (ORT) → layout-tract (tract): RT-DETR layout detection + the PP-LCNetwired/wireless table classifier run on WASM and the Android x86_64 emulator. TATR, SLANeXT, PP-DocLayout-V3, and YOLO stay ONNX Runtime-only (tract 0.23.4 op-coverage gaps).
auto-rotate (ORT) → auto-rotate-tract (tract): PP-LCNet document-orientation on WASM and theAndroid x86_64 emulator.
WASM/Android-safe variants:
ocr (native) → ocr-wasm (uses tesseract-wasm + safe image deps) — Android keeps native ocrexcel (native) → excel-wasm (drops tokio-runtime) — Android keeps native exceltree-sitter (native dlopen) → tree-sitter-wasm (statically-linked grammar pack). NOT in wasm-target: the 371-language grammar pack pushes the browser .wasm past jsDelivr's 50 MB per-file cap, breaking the CDN-hosted demo. WASM has no code intelligence; Android keeps native tree-sitter.liter-llm — works on WASM via the upstream wasm-http feature; included in no-ort-targetstopwords — pure-Rust, included in no-ort-targetkeywords — pure-Rust YAKE/RAKE, included in no-ort-targetThe no-ort-target aggregate is the shared no-ORT base used by both wasm-target and android-target. wasm-target = no-ort-target + excel-wasm + ocr-wasm + layout-tract + auto-rotate-tract (NO tree-sitter — see above). android-target = no-ort-target + excel + tree-sitter + ocr + api + mcp + layout-tract + auto-rotate-tract.
pdf — the canonical PDF feature, backed by the pure-Rust pdf_oxide crate. This is the primary/default PDF extraction pipeline; there is no separate pdf-oxide feature. Included in formats, full, no-ort-target, and wasm-target.ort-bundled — downloads official Microsoft ORT binaries; default when OCR/ML features activeort-dynamic — load ORT from system; only when system ORT is guaranteed presentxberg-paddle-ocr, hf-hub, pprof — excluded on wasm32ureq: rustls on non-Windows; native-tls on Windowsxberg-ffi and xberg-dart cargo dependencies are target-conditional: cfg(target_os = "android") (both ABIs — aarch64 and x86_64) and cfg(target_os = "ios") select android-target, the pure-Rust tract ML surface with no ONNX Runtime; cfg(target_os = "windows") selects windows-target (full ORT ML via ort-bundled); cfg(all(target_os = "macos", target_arch = "x86_64")) selects macos-intel-target. All other targets (Linux, macOS arm64) get the full ORT-enabled feature set. Android and iOS run inference through tract, not ORT, on every ABI — there is no arch split that gives arm64 Android phones a native ORT build.| Feature | Description | | ---------------- | -------------------------------------------------------------------------------------------------- | | formats | All document formats + api/mcp/otel/chunking; no OCR, no ML | | full | formats + ocr + paddle-ocr + layout + embeddings + tree-sitter + liter-llm | | no-ort-target | Pure-Rust base: every capability that does not depend on ONNX Runtime | | wasm-target | no-ort-target + excel-wasm + ocr-wasm + layout-tract + auto-rotate-tract (no tree-sitter — grammar pack exceeds CDN 50 MB cap) | | android-target | no-ort-target + excel + tree-sitter + ocr + api + mcp + layout-tract + auto-rotate-tract (for x86_64-linux-android emulator) |
release — LTO thin, codegen-units=1, stripprofiling — inherits release, retains debug infoxberg-wasm override: opt-level="z" (size-optimized)sevenz-rust2, zip override: opt-level=2 (prevents SIGBUS on macOS ARM64)Other measured skills in the registry, with their headline benchmark lift.