Skip to content

structuredmerge/structuredmerge-rust

Repository files navigation

StructuredMerge Rust

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:

Install

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"

Crates

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:

Provider and recipe crates:

Portability

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.

Development

Common checks:

  • mise run check
  • cargo test

About

Rust implementation of the StructuredMerge contract

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages