Changelog
All notable changes to reclink will be documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.1
Fixed
- PyPI sdist now includes LICENSE file at package root
- PyPI README logo renders correctly (absolute URL)
- Type stubs:
ScorerandCompositePresetacceptstrfor custom metric support register_metrichas proper@overloadsignatures for all calling conventions- Clippy and ruff lint errors resolved across codebase
- Mypy runs on test files with correct
--python-executablefor numpy resolution - WASM playground loads correctly under
/reclink/base path - Internal doc links updated for
routeBasePath: '/'
Added
- Pre-commit hooks: cargo fmt, clippy, ruff check, ruff format, mypy
- CI workflow with lint, rust-test, and cross-platform Python test matrix
- GitHub Pages docs workflow with WASM build
- PyPI release workflow with trusted publishing (OIDC) for 6 platform targets
- PR cache cleanup workflow
- Changelog page in docs site
- PyPI metadata: badges, classifiers, keywords, project URLs
Changed
- Docs served at
docs.byteveda.org/reclink/via org-level GitHub Pages - Removed
/docsprefix from doc routes (redundant withdocs.subdomain) - Updated crate dependencies:
unicode-normalization0.1.25,ahash0.8.12,thiserror2.0,regex1.12,memmap20.9.10,crossbeam-channel0.5.15,wasm-bindgen0.2.114,serde-wasm-bindgen0.6.5,js-sys0.3.91 - Apache-2.0 license consistent across all crates
0.1.0
Initial release.
Added
- 21 string metrics: Levenshtein, Damerau-Levenshtein, Hamming, Jaro, Jaro-Winkler, Cosine, Jaccard, Sorensen-Dice, Weighted Levenshtein, Token Sort, Token Set, Partial Ratio, LCS, Longest Common Substring, N-gram Similarity, Smith-Waterman, Phonetic Hybrid, Ratcliff-Obershelp, Needleman-Wunsch, Gotoh, Monge-Elkan
- 10 phonetic algorithms: Soundex, Metaphone, Double Metaphone, NYSIIS, Caverphone, Cologne Phonetic, Beider-Morse, Phonex, MRA, Daitch-Mokotoff
- 11 blocking strategies: Exact, Phonetic, Sorted Neighborhood, Trie, Q-gram, Numeric, Date, LSH, Canopy, Hybrid (union/intersection modes), Custom
- 8 classifiers: Threshold, Weighted, Threshold Bands, Weighted Bands, Fellegi-Sunter, Fellegi-Sunter Auto (EM), Logistic Regression, Decision Tree
- 5 clustering algorithms: Connected Components, Hierarchical, DBSCAN, OPTICS, Incremental
- 7 index structures: BK-tree, VP-tree, N-gram Index, Memory-mapped N-gram Index, MinHash LSH, Bloom Filter, Inverted Index
- Full record linkage pipeline with builder pattern: preprocessing, blocking, comparison, classification, clustering
- Batch operations:
cdist,match_best,match_batchwith Rayon parallelism - Composite scoring with presets (name matching, address matching, general purpose)
- Streaming matchers with backpressure support
- Custom metric/blocker/comparator/classifier registration with decorator syntax
- Pandas and Polars integration: DataFrame accessors, fuzzy join, Polars expression plugin
- Text preprocessing: case folding, whitespace normalization, diacritics stripping, stop word removal, abbreviation expansion, domain-specific cleaners (name, address, company, email, URL), transliteration (Cyrillic, Greek, Arabic, Hebrew, Devanagari, Hangul)
- Arrow-compatible batch operations for zero-copy interop
- TF-IDF matcher for corpus-aware similarity
- EM parameter estimation for Fellegi-Sunter models
- Evaluation utilities: precision, recall, F1, confusion matrix
- Export: CSV, JSON, NetworkX graph
- CLI:
reclink compare,reclink batch,reclink pipeline - WASM bindings for browser-based playground
- Interactive docs site with live WASM-powered playground