← all repositories
kreeben/resin

Search engine reboot hand-rolled from raw storage primitives

It rebuilds vector search and key-value storage from custom page formats up, keeping the dependency graph light and every byte offset immutable.

575 stars C# RAG · Search
Collecting fresh signals — velocity needs a few days of history.
star history

What it does Resin is a rebooted C# project that packs a vector-space search engine, a vector database, and a columnar key/value store into one dependency-light package. It splits work across three modules: Resin.KeyValue for on-disk column storage, Resin.TextAnalysis for tokenization and vector math, and Resin.WikipediaCommandLine for lexicon tooling. Everything sits atop a custom storage layer that treats each column as an append-only set of keys backed by .key, .adr, and .val files.

The interesting bit Rather than wrapping an existing database, Resin implements its own page-level column store with linked-list value chaining and strict key semantics—TKey must be a comparable struct with deterministic ordering. That design choice enables set operations like union and intersection across columns while keeping value offsets stable and cache-friendly.

Key highlights

  • Custom append-only storage using .key, .adr, and .val streams; existing bytes are never modified in place.
  • Duplicate prevention via sorted column-wide snapshots and binary search, turning columns into sets that can be joined.
  • PutOrAppend links multiple values to a single key with fixed-size nodes tail-appended to the value stream.
  • Text-analysis utilities for bags-of-words/characters and vector similarity.
  • Clean, dependency-light design intended to be extended rather than configured.

Caveats

  • The README claims Resin can “produce large language models out of strings” but never explains how, leaving that feature opaque.
  • Performance is described as “fast” without benchmarks or comparative numbers.
  • Custom TKey structs are hashed to long for page-level storage, so uneven hash distributions or collisions can affect behavior.

Verdict A solid candidate if you need a hackable, from-scratch search or KV layer in C# without heavy dependencies. Look elsewhere if you want a proven, production-grade vector database with managed scaling.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.