StructuredMerge Rust provides Cargo crates for native tools that need portable structured-merge contracts, fixture-backed behavior, and embeddable merge components.
The workspace includes the core AST/review contracts, parser substrate support, format-specific merge crates, binary/ZIP planning helpers, provider adapters, and a Rust packaging recipe crate.
Project links:
- Website: https://structuredmerge.org
- Implementations: https://structuredmerge.org/implementations.html
- Specification: https://github.com/structuredmerge/structuredmerge-spec
- Shared fixtures: https://github.com/structuredmerge/structuredmerge-fixtures
Add the crates your tool needs:
[dependencies]
ast-merge = "0.1"
tree-haver = "0.1"Binary and ZIP use StructuredMerge-prefixed package names on crates.io:
structuredmerge-binary-merge = "0.1"
structuredmerge-zip-merge = "0.1"Core:
tree-haver- parser substrate, byte ranges, backend adapters, and binary tree contracts.ast-merge- AST merge contracts, diagnostics, planning, review, replay, and nested-merge vocabulary.ast-template- template/session transport contracts.
Format libraries:
plain-mergejson-mergeyaml-mergetoml-mergemarkdown-mergeruby-mergego-mergerust-mergetypescript-mergebinary-mergezip-merge
Provider and recipe crates:
The Rust crates are developed against the shared StructuredMerge fixtures. Those fixtures define the cross-language behavior expected from the Go, TypeScript, Rust, and Ruby implementations. Conformance checks live in crate tests and in the shared spec/fixture tooling rather than in a static launch-status document.
Common checks:
mise run checkcargo test