Skip to content

Third-party plugins

Binoc ships a capable standard library (binoc-stdlib), but some datasets use formats that need a dedicated rule pack. Install one of the add-on plugins below when your snapshots include those kinds of files.

To find a match, compare your filenames (suffixes) and, when available, detected media types to the tables under each plugin. Once you find one, install the package and configure any dataset semantics it documents.

Publishing or listing a plugin

If you maintain a plugin and want it listed here, see Publish a plugin.

Generated page

Entries are maintained in third_party_plugins.json at the repository root. Maintainers regenerate this Markdown with scripts/build_third_party_plugins_page.py (just docs-plugin-catalog).

binoc-sqlite

Compares two SQLite database files: table/column layout, column types, primary keys, and per-table row counts. Useful when a dataset ships as .db / .sqlite snapshots instead of flat files.

Install

After you install the package (for example from PyPI), binoc picks it up via the standard entry-point group — see Install and use plugins and Plugin discovery.

Published packages declare discovery metadata like this:

[project.entry-points."binoc.plugins"]
binoc-sqlite = "binoc_sqlite"

This distribution is a native Rust plugin (native_rust_module): the target is a module name, not module:function.

When it handles your files

This rule pack is relevant when a file path matches one of the extensions or its detected media type matches. These selectors are advertised for discovery and documentation; current diff behavior is driven by the correspondence engine's rule configuration.

Field Value
extensions .sqlite, .sqlite3, .db
media_types application/vnd.sqlite3, application/x-sqlite3
scope files

Labels you may see in a changeset (not used for routing): tabular_collection, tabular

Rule families supplied: parse, writer, materializer

binoc-stat-binary

Reads Stata .dta, SAS .sas7bdat, and SAS transport .xpt files as standard Binoc tabular data so normal column, row, and cell diffing applies.

Install

After you install the package (for example from PyPI), binoc picks it up via the standard entry-point group — see Install and use plugins and Plugin discovery.

Published packages declare discovery metadata like this:

[project.entry-points."binoc.plugins"]
binoc-stat-binary = "binoc_stat_binary"

This distribution is a native Rust plugin (native_rust_module): the target is a module name, not module:function.

When it handles your files

binoc-stat-binary.stata

This rule pack is relevant when a file path matches one of the extensions or its detected media type matches. These selectors are advertised for discovery and documentation; current diff behavior is driven by the correspondence engine's rule configuration.

Field Value
extensions .dta
media_types
scope files

Labels you may see in a changeset (not used for routing): tabular

Rule families supplied: parse

binoc-stat-binary.sas7bdat

This rule pack is relevant when a file path matches one of the extensions or its detected media type matches. These selectors are advertised for discovery and documentation; current diff behavior is driven by the correspondence engine's rule configuration.

Field Value
extensions .sas7bdat
media_types
scope files

Labels you may see in a changeset (not used for routing): tabular

Rule families supplied: parse

binoc-stat-binary.xpt

This rule pack is relevant when a file path matches one of the extensions or its detected media type matches. These selectors are advertised for discovery and documentation; current diff behavior is driven by the correspondence engine's rule configuration.

Field Value
extensions .xpt
media_types
scope files

Labels you may see in a changeset (not used for routing): tabular

Rule families supplied: parse

Catalog file for tools

The canonical data lives in third_party_plugins.json (JSON). Hosts that suggest plugins for unrecognized formats should read that file; dispatch fields describe the rule pack's advertised file selectors.