Entity Resolver for Node.js and Browser
A stateless, pure-computation entity resolver engine with WASM acceleration. Built for TypeScript first, designed for any JavaScript runtime.
Entity Resolver is pure computation. f(records) → {clusters, matchPairs, scores}. No side effects. No I/O. No internal mutable state. Runs anywhere JavaScript runs.
| Package | Description | npm |
|---|---|---|
entity-resolver-core |
Stateless computation engine with WASM acceleration and DI interface contracts | @agentix-e/entity-resolver-core |
entity-resolver-node |
Node.js adapters (FileDataSource, SqliteEntityStore, FileConfigStore) | @agentix-e/entity-resolver-node |
entity-resolver-browser |
Browser adapters (FetchDataSource, IndexedDBEntityStore, LocalStorageConfigStore) | @agentix-e/entity-resolver-browser |
entity-resolver-server |
Deployable HTTP/gRPC/MCP API service (stateless by default) | @agentix-e/entity-resolver-server |
entity-resolver-cli |
Command-line tool for deduplication, matching, and diagnostics | @agentix-e/entity-resolver-cli |
entity-resolver-visual |
Framework-agnostic, embeddable diagnostic components (3-layer: Data API + Headless + Web Components) | @agentix-e/entity-resolver-visual |
entity-resolver |
Umbrella facade — one import, all packages | @agentix-e/entity-resolver |
// Pure computation — zero I/O, runs anywhere
import { dedupe } from '@agentix-e/entity-resolver-core';
const records = [
{ name: 'John Smith', dob: '1990-01-15', city: 'New York' },
{ name: 'Jon Smyth', dob: '1990-01-15', city: 'NYC' },
{ name: 'Jane Doe', dob: '1985-06-20', city: 'Los Angeles' },
];
const result = await dedupe(records);
// result.clusters: { clusterId → recordIds }
// result.scores: pairwise match probabilities
// result.diagnostics: waterfall data, histograms, m/u charts// Node.js — with file I/O and SQLite persistence
import { dedupeFromFile } from '@agentix-e/entity-resolver-node';
const result = await dedupeFromFile('customers.csv', {
entityStore: 'sqlite:mydb.sqlite',
autoconfigure: true,
});See ARCHITECTURE.md for the full architecture document, including:
- Stateless core design with DI interface contracts
- Fellegi-Sunter probabilistic model (EM algorithm)
- 5 blocking strategies + 19 scorers + 3 clustering algorithms
- 3-layer framework-agnostic visualization system
- Incremental update engine
- WASM acceleration via Rust → WASM (auto-fallback to pure JS)
MIT © Lambertyan — AgentiX-E
📖 Full Documentation — Guides, API Reference, Migration