CoordiationCSS
Menu
Docs/Tooling/Native scanner

TOOLING · COMPLETE

Cross-platform native scanner

Batch literal candidate extraction through a dependency-free C11 engine while keeping source discovery, filters, safelists, diagnostics, and fallback behavior visible to the caller.

The same source contract targets Linux, macOS, and Windows on x64 and arm64. The result always reports which engine actually ran.

01

Request native scanning

scan.mjs
import { scanSourcesNative } from "@coordiation/oxide";

const result = await scanSourcesNative(["src"], {
  include: ["src/**"],
  exclude: ["**/*.test.*"],
  safelist: ["co-grid"],
});

console.log(result.engine, result.native);

The candidate and diagnostic shape matches scanSources(). A single native process receives all discovered source text instead of starting once per file.

02

Require native execution when measuring

No fallback
const result = await scanSourcesNative(["src"], {
  fallback: false,
});

Missing binaries throw when fallback: false. In normal builds, the JavaScript scanner remains a compatible fallback and reports binary-unavailable.

03

Build or select a verified binary

Native build
npm run --workspace @coordiation/oxide build
coordiation-oxide --manifest

# Optional verified release artifact
COORDIATION_OXIDE_BINARY=/opt/coordiation/coordiation-oxide

Installation attempts an optional local build when a C compiler exists. Release packages can provide platform/architecture artifacts under the documented prebuilt directory.

04

Inspect instead of assuming

Engine manifest
{
  "engine": "native",
  "native": {
    "engine": "native-c11",
    "platform": "linux",
    "architecture": "x64",
    "available": true
  }
}

The repository includes equivalence tests, a 200-file performance fixture, and a supported-platform build matrix.

FALLBACK CONTRACT

Native code stays optional

Optimization must not hide a behavioral change.

  • JavaScript extractor hooks select the JavaScript engine and report custom-extractors.
  • Dynamic-construction diagnostics remain in the wrapper so native and JavaScript results agree.
  • Safelist entries are validated with the configured prefix.
  • An installed package is not proof that a native binary ran.
  • Release artifacts still require platform signing and release-matrix verification.