▄▄
 █▄ █▄                           ██    █▄
▄██▄██            ▄              ██    ██       ▄
 ██ ████▄ ▄█▀█▄   ███▄███▄ ▄█▀█▄ ██ ▄████ ▄█▀█▄ ████▄
 ██ ██ ██ ██▄█▀   ██ ██ ██ ██▄█▀ ██ ██ ██ ██▄█▀ ██
▄██▄██ ██▄▀█▄▄▄  ▄██ ██ ▀█▄▀█▄▄▄▄██▄█▀███▄▀█▄▄▄▄█▀

Record Matching Engine

A high-performance entity resolution engine written in Rust. Matches messy vendor records against clean reference data using embeddings, BM25, fuzzy matching, and a few clever tricks.

Interactive Codebase Guide View on GitHub

Two Modes

Same scoring pipeline, different execution models.

Batch Mode

meld run — Load both datasets, match every B record against the A-side pool in parallel, write results.

Overnight reconciliation, periodic vendor matching, data migration.

Live Mode

meld serve — HTTP server with both datasets preloaded. New records matched instantly via API.

Real-time integration, duplicate prevention, system sync.

Quick Start

Build and run in under a minute.

# Build with HNSW vector index (recommended)
cargo build --release --features usearch

# Validate a config file
./target/release/meld validate --config config.yaml

# Run batch matching
./target/release/meld run --config config.yaml

# Start live server
./target/release/meld serve --config config.yaml --port 8090

Scoring Methods

Combine multiple comparison strategies with configurable weights.

MethodWhat it doesBest for
embeddingNeural semantic similarityPrimary name field
bm25IDF-weighted token overlapSuppressing common-word noise
fuzzyEdit-distance similarityNames, free text with typos
exactBinary string equalityIdentifiers, codes, country
synonymAcronym/abbreviation detection"HSBC" vs "Hongkong and Shanghai Banking Corp"
numericNumeric equalityNumeric identifiers

Documentation

Everything you need to configure, run, and understand Melder.

Learn the Codebase

New to the project? Start with the interactive guide.

A self-contained walkthrough of the architecture, scoring pipeline, and engineering patterns — with animated diagrams, code explanations, and quizzes.

Open the Interactive Guide