Integrations
Rust pipeline
let parsed = filefacts::open(&bytes)?;
let feature_row = (
parsed.fileid(),
parsed.metrics(),
parsed.sections(),
parsed.symbols(),
);
Request only the views your pipeline consumes. This keeps extraction cost and feature contracts explicit.
Process pipeline
filefacts --format json suspect.bin > facts.json
Focused views reduce payload size:
filefacts --format json metrics suspect.bin
filefacts --format json imports suspect.bin
Reproducible datasets
Record these alongside extracted features:
- input SHA-256
- filefacts crate/CLI version and
SCHEMA_VERSION - enabled views and configuration
- Rizin/radare2 presence and version
Use a pinned build and toolchain for train/serve parity. The same bytes can produce additional deep binary facts when Rizin is added or upgraded.
Parser failures are surfaced through the errors view. Preserve them instead
of silently treating missing facts as zero; “not present” and “could not
extract” are different model inputs.