v0.1.0
What's Changed
- Add bench harness for fts and for vector search by @vinaykakade in #1
- test: rename id-column rejection test, broaden coverage by @vinaykakade in #2
- fix benchmarks: make benchmarks runnable using criterion by @Pranav2612000 in #3
- chore: add rustfmt.toml for uniform formatting by @Pranav2612000 in #4
- benchmarks: allow running superfile and supertable benchmarks seperately by @Pranav2612000 in #6
- Add peak-RSS stats to benchmarks by @ekechinwokah in #7
- bench: report RSS median and p90 by @ekechinwokah in #8
- Accelerate CRC verification to improve cold open latency by @ekechinwokah in #9
- bench: suffix multi-term OR query labels with _or by @vinaykakade in #10
- Add streaming to vector index builds by @ekechinwokah in #12
- Fix bad merge in #12 by @ekechinwokah in #13
- chore ci: add basic fmt, build & test on every PR by @Pranav2612000 in #11
- fts: leapfrog AND intersection over the skip table by @vinaykakade in #14
- Add lazy on-demand loads to vector reader by @ekechinwokah in #16
- Add streaming to FTS index builds by @ekechinwokah in #15
- fts: block-max-AND pruning + 2-term flat-merge specialization by @vinaykakade in #17
- test: stabilize commit::stats RSS readings under parallel exec by @ekechinwokah in #20
- improv ci: run tests only once ( during coverage check ) by @Pranav2612000 in #19
- fts: generalize flat-merge AND intersection to n >= 3 terms by @vinaykakade in #22
- Add rerank codecs for vectors by @ekechinwokah in #21
- test: tier-1 coverage push (+1.34 pp lines, 90.14% → 91.48%) by @vinaykakade in #23
- Add SIMD fast paths to vectors and remove Bf16 codec by @ekechinwokah in #24
- vector/distance: gate x86_64-only test helpers so make ci passes on aarch64 by @vinaykakade in #26
- examples: end-to-end demo across superfile, open-format, supertable by @muralikpbhat in #28
- WAL-driven updates + deletes by @vinaykakade in #27
- test: remove flaky whole-process RSS growth assertion by @vinaykakade in #31
- examples: name demo magic values as constants by @muralikpbhat in #30
- [1/n] improv superfile id_lookup: only read id rows from parquet by @Pranav2612000 in #33
- docs: add initial CONTRIBUTING guide and README Development section by @naman-modi in #35
- bench/supertable-update: correctly update using mutation counter across criterion calls by @vinaykakade in #36
- runtime: consolidate sync→async bridging into one bridge + runtime by @vinaykakade in #38
- Add object storage support by @ekechinwokah in #34
- Fix bug with retries on S3 connections by @ekechinwokah in #40
- docs: add AGENTS.md for AI agents (with CLAUDE.md symlink) by @ashishmishra26 in #37
- storage: add Azure Blob StorageProvider by @pratyushlokhande in #41
- improv fts: dedupe reader parsing and top-k plumbing by @naman-modi in #42
- Add SQL-native search via DataFusion by @ekechinwokah in #39
- Remove Criterion from benches by @ekechinwokah in #53
- Fix bug when running benchmarks on s3-fs emulator by @ekechinwokah in #51
- Polish up comments, constants, and license by @ekechinwokah in #45
- benches: explicit object-store backend selection + Azure (INFINO_BENCH_STORE) by @pratyushlokhande in #57
- Restore reader method on supertable by @ekechinwokah in #59
- supertable/query: FTS token_match + exact_match APIs and WHERE pushdown by @ekechinwokah in #58
- Extend SQL tests in benches by @ekechinwokah in #63
- storage: bring Azure resilience to S3 parity via shared retry path by @pratyushlokhande in #61
- ci: on-demand Azure supertable benchmark (in-region VM + sccache blob cache) by @pratyushlokhande in #62
- ci: scope bench VM to a fixed RG with exact per-run teardown by @pratyushlokhande in #65
- ci: run benchmark under the ci environment for branch-agnostic OIDC by @pratyushlokhande in #66
- ci: raise fd limit before the benchmark to avoid EMFILE on commit by @pratyushlokhande in #67
- benches: doc-count override is a plain integer, fix README example by @muralikpbhat in #68
- benches/ci: configurable bench selection + unified doc-count env by @pratyushlokhande in #69
- ci: drop inter-bench noise from the benchmark result summary by @pratyushlokhande in #72
- ci: run the bench group on every PR (informational) by @pratyushlokhande in #71
- ci(bench): compare PR benchmarks against main + track history by @pratyushlokhande in #73
- Public interface: Connection + Supertable catalog API, curated surface, Python bindings by @vinaykakade in #70
- feat superfile writer: add fn to create batch from another superfile by @Pranav2612000 in #60
- ci(bench): plot P90 RSS trend over last 10 main commits by @pratyushlokhande in #74
- chore: set up pre-commit hooks for cargo fmt & clippy checks by @Pranav2612000 in #79
- chore: compact config options added by @savannahar68 in #78
- feat superfile writer: ignore deleted documents when creating batch from superfile by @Pranav2612000 in #77
- chore: populate subsection_offsets.total_size for mutations by @savannahar68 in #81
- fix manifest commit: validates manifest_id before commiting manifest by @Pranav2612000 in #83
- feat superfile: create new superfile bytes by merging multiple readers by @Pranav2612000 in #80
- Refactor benches and extend public API by @ekechinwokah in #76
- feat: compaction policy v1 by @savannahar68 in #84
- improv superfile builder: return superfile stats when building from readers by @Pranav2612000 in #85
- fix benches: profile_segment calls renamed vector_hits_async by @naman-modi in #87
- feat supertable: merge superfileentries to new file's shardoutput by @Pranav2612000 in #89
- nit: remove action to build py package on macos13 from ci pipeline by @naman-modi in #93
- Feat/build merged shard by @Pranav2612000 in #94
- AGENTS.md: require imports at the top of the file by @vinaykakade in #95
- improv supertable commit: prevent redundant superfile writes during manifest CAS error by @Pranav2612000 in #96
- feat fts:
-termnegation for bm25_search by @naman-modi in #82 - feat: compact function to trigger compaction by @savannahar68 in #97
- supertable: drop redundant fp32 centroids from open_blob (-72% cold open) by @muralikpbhat in #101
- rename: 'segment' terminology to 'superfile' across the codebase by @vinaykakade in #98
- Revise search section to emphasize hybrid search by @ekechinwokah in #91
- [1/n] refactor supertable manifest: move manifest rebalancing to a separate function by @Pranav2612000 in #100
- fix chore pre-commit: modify clippy command to match ci by @Pranav2612000 in #105
- [2/n] feat manifest: support removing superfile entries from manifest by @Pranav2612000 in #102
- reader_cache: bg fill must re-check the reader after its grace sleep by @ekechinwokah in #106
- bench: prepare/benchmark split — run search on a pre-uploaded dataset by @pratyushlokhande in #92
- [3/n] feat supertable compaction: compact superfiles and update manifest for each job by @Pranav2612000 in #103
- fix: compaction select logic by @savannahar68 in #109
- chore: public api for compaction by @savannahar68 in #107
- bench: faithful cold vector measurement at supertable scale by @muralikpbhat in #88
- Fix a few issues discovered during testing by @ekechinwokah in #86
- Fix more testing issues: reduce aggregation latencies and clean up benchmark reporting by @ekechinwokah in #112
- feat: node bindings by @ashishmishra26 in #90
- Fix memory leak on supertable/query: break SessionContext cycle that leaked consumers on cold reopen by @ekechinwokah in #115
- Clean up repo for early OSS users by @ekechinwokah in #116
- parallelize corpus generation in benchmarks by @ekechinwokah in #117
- chore: Add regression test for O(n) commit latency with LocalFs storage by @savannahar68 in #118
- chore: node publish workflow by @ashishmishra26 in #120
- improv compaction tombstone: reduce tombstone network calls during compaction by @Pranav2612000 in #119
- ci: add manual workflow to publish the Python package to PyPI by @pratyushlokhande in #122
- chore: reduce encoding decoding per commit by @savannahar68 in #121
- ci: require SemVer for the Python release version by @pratyushlokhande in #125
- chore: update node publish workflow by @ashishmishra26 in #123
- docs: restructure README for onboarding — TOC, Install, agent quickstart, hybrid retrieval by @vinaykakade in #127
- Update package name by @ashishmishra26 in #130
- ci: speed up Python wheel builds; drop unsupported Windows target by @pratyushlokhande in #126
- docs: install the Python package from TestPyPI by @pratyushlokhande in #134
- Publish private npm package by @ashishmishra26 in #135
- chore: update publish workflow by @ashishmishra26 in #137
- a few fixes from 1B doc tests. by @ekechinwokah in #138
- test compaction: add compaction integration test by @Pranav2612000 in #129
- refactor manifest: expose manifest::load method for reading and loading manifest from storage by @Pranav2612000 in #139
- chore: [rebalance] minor optimisation of loading parts by @savannahar68 in #128
- test: raise line/function/region coverage above 90% by @vinaykakade in #157
- chore ci: fail ci if test coverage drops below 90 by @Pranav2612000 in #131
- ci: add automated PR reviewer by @pratyushlokhande in #136
- refactor manifest: allow manifest ops only through api by @Pranav2612000 in #159
- Revise README for clarity and feature updates by @ekechinwokah in #140
- feat: update & delete support in node by @ashishmishra26 in #161
- chore: allow one compaction at any given point in one process by @savannahar68 in #162
- python: show the README on the PyPI project page by @pratyushlokhande in #133
- ci: post bench results as a sticky PR comment by @pratyushlokhande in #169
- chore: retries in compaction flow duing occ errors by @savannahar68 in #165
- ci: split dataset bench into prepare + bench workflows by @pratyushlokhande in #168
- ci: fix and broaden the bench trend charts by @pratyushlokhande in #171
- ci: grant id-token write on dataset workflow callers by @pratyushlokhande in #175
- python: expose update, delete and compact by @pratyushlokhande in #167
- feat(fts): add Supertable::count — count-only matcher with O(1) df fast path by @vinaykakade in #160
- ci: post PR-Agent suggestions as inline comments by @pratyushlokhande in #177
- chore: [GC 1/n] add list with metadata function in storage by @savannahar68 in #174
- refactor manifest: rewrite manifest update fns as methods by @Pranav2612000 in #172
- python: expose cache and cold-fetch connect options by @pratyushlokhande in #178
- chore ci: fail ci if function coverage drops below 90% by @Pranav2612000 in #163
- refactor manifest: rename var for number of target_superfiles_per_part by @Pranav2612000 in #184
- catalog: drive table-free query_sql on a multi-thread runtime by @pratyushlokhande in #187
- Add Filtered Vector Search via Predicate Pushdown by @ekechinwokah in #173
- fix manifest rebalance: dont rebuild unchanged parts while removing entries by @Pranav2612000 in #186
- refactor manifest stats: store manifest list entry stats as arrayrefs by @Pranav2612000 in #190
- feat: add gc support by @savannahar68 in #185
- feat manifest stats: add methods for building & merging StatsAgg by @Pranav2612000 in #191
- chore ci: run pr review for all PRs by @Pranav2612000 in #203
- Add filtered vector search option in bindings and update docs by @ashishmishra26 in #200
- feat manifest stats: deprecate StatsTable by @Pranav2612000 in #202
- ci/bench: AI-summarized PR comment, only significant deltas by @pratyushlokhande in #204
- Update node package docs by @ashishmishra26 in #211
- examples: Python RAG examples for the infino package by @pratyushlokhande in #210
- chore: optimise fn wrapper on top of compact fn by @savannahar68 in #201
- python docs: document SQL search TVFs and hybrid search by @pratyushlokhande in #214
- ci: run the Python RAG examples end to end by @pratyushlokhande in #213
- ci: answer /ask replies on inline review comments by @pratyushlokhande in #216
- [1/n] refactor manifest: use Bloom struct in FtsSummaryAgg by @Pranav2612000 in #217
- [2/n] feat manifest stats: add methods for building, merging & using FtsSummaryAgg by @Pranav2612000 in #218
- [3/n] feat manifest stats: deprecate FtsSummary by @Pranav2612000 in #219
- docs/ci: document and verify uv install for the Python package by @pratyushlokhande in #221
- [4/n] feat manifests: add merge fn for vector aggs by @Pranav2612000 in #220
- ci/bench: skip reporting steps on cancel, keep teardown by @pratyushlokhande in #223
- Add examples in infino-node by @ashishmishra26 in #222
- feat manifest commit: rely on current stats for new stats calculation while building parts by @Pranav2612000 in #212
- improv: import hygiene; imports at top of file + grouped layout by @naman-modi in #224
- refactor manifests: rename rebalance fn to update by @Pranav2612000 in #227
- refactor manifests: rename ManifestListEntry to ManifestPartEntry by @Pranav2612000 in #225
- test: add locomo test by @ashishmishra26 in #226
- refactor manifests: rename Manifest->ManifestSnapshot & ManifestList->Manifest by @Pranav2612000 in #229
- docs: install infino from PyPI instead of TestPyPI by @pratyushlokhande in #232
- examples: add code-search, analytics, and inventory examples by @pratyushlokhande in #228
- docs: rename compact to optimize in Python/Node READMEs by @pratyushlokhande in #233
- feat manifest: add cache for manifest parts by @Pranav2612000 in #231
- python: add typed stubs, py.typed, and module metadata by @pratyushlokhande in #188
- feat: update node package to make it public by @ashishmishra26 in #241
- feat: compact(v1) sq8 vectors by @savannahar68 in #242
- feat: publish crate by @ashishmishra26 in #246
- feat manifest partition: use ingestion time with daily granularity as default partition by @Pranav2612000 in #245
- chore: make npm package public by @ashishmishra26 in #247
New Contributors
- @vinaykakade made their first contribution in #1
- @ekechinwokah made their first contribution in #7
- @muralikpbhat made their first contribution in #28
- @naman-modi made their first contribution in #35
- @ashishmishra26 made their first contribution in #37
- @pratyushlokhande made their first contribution in #41
- @savannahar68 made their first contribution in #78
Full Changelog: https://github.com/infino-ai/infino/commits/v0.1.0