Bridge/A product from GroupLabsHybrid search engine

Hybrid search, under a millisecond.

Bridge runs keyword and vector retrieval in the same query, on the same machine, in microseconds. Written close to the metal so you don't pay for a search cluster to find four results.

One binary. A small RAM footprint. Sub-millisecond p50. It's what you wish your search bar was.

bridge://index/productsidle · listening
queryhybrid · sparse + dense
q>red leather wallet∥ 2 lanes
lanescancmpt
bm25
0
··
hnsw
0
··
fuseawaiting candidates
top resultsrrf · k=60
  • 10x9a4cred leather wallet · vintage8.4·0.92
  • 20x4ee1leather card holder · slim6.1·0.88
  • 30x71b3wallet care guide5.7·0.71
  • 40x2c08crimson coin purse2.3·0.84
12.4M docs · 1.2 GB resident
total latency0µs
p50 latency
0.4 ms
p99 latency
1.1 ms
Footprint
one static binary
Indexes
bm25 + hnsw, in-process

When this matters

If search is slow, costly, or only half-right.

Bridge is for teams whose products live or die on retrieval, and whose latency budget can't spare a network hop.

    01

    Your search bar is the bottleneck

    Every query hits a remote cluster. Cold caches, queue waits, JSON over the wire. Users feel the spinner before they see a result.

    02

    Vector-only retrieval misses obvious matches

    Semantic search nails fuzzy intent and faceplants on exact terms. Users type a SKU or a name. Embeddings shrug. The right item is on page three.

    03

    You're paying for a cluster to find ten rows

    A managed search service is the third-largest line on the bill. Most queries return small result sets that fit in L2. The cluster is bored.

    04

    Latency budget is already spent

    You have a 50ms budget for the whole page. Search took 38. There is nothing left for the rest of the request.

How it works

One process. Two indexes. Microseconds, not milliseconds.

Bridge keeps the whole query inside one machine, one address space, one cache line where it can.

    01Step

    One binary, in your process

    Bridge ships as a static binary or a library you link in. No Java runtime, no node coordinator, no cluster. It runs next to your application.

    02Step

    Two lanes, one query

    Every request fans out to a sparse lane (BM25 over a compressed posting list) and a dense lane (HNSW over your embeddings). Both lanes run in parallel, in the same address space.

    03Step

    Vectorized, zero-copy hot path

    The scanner is written in Rust with SIMD intrinsics. Posting lists, vectors, and result heaps live in arenas that don't allocate per query. Cache stays warm.

    04Step

    Reciprocal-rank fusion

    Results from both lanes merge with RRF, so an exact-match SKU and a semantically close phrase land in the same top ten. Tunable, or hand it your own scorer.

What ships

A small thing that does one job very fast.

Bridge is shaped like a library, priced like infrastructure, and benchmarked like a database.

  • 01

    A binary you can drop next to your app

    Embed it as a library, run it as a sidecar, or call it over a Unix socket. No coordinator, no quorum, no rolling restarts.

  • 02

    Hybrid retrieval that beats either lane alone

    BM25 catches the exact terms. HNSW catches the intent. Reciprocal-rank fusion gives you a top-10 that's right on both axes, without picking a side.

  • 03

    Numbers you can put on a status page

    Sub-millisecond p50 on a million-doc corpus on commodity hardware. Hot path is allocation-free. RAM cost is a function of your data, not your traffic.

    Hybrid query · 1.2M docs · same hardware
    p50 / p99 ms
    • Bridge

      1.2 GB

      0.4 / 1.1
      1.1 ms
    • Vector DB · cloud

      6 nodes

      18 / 64
      64 ms
    • Search cluster

      8 nodes

      22 / 90
      90 ms
    • Postgres + pgvector

      4 GB

      11 / 38
      38 ms
bridge://index/productsidle · listening
queryhybrid · sparse + dense
q>red leather wallet∥ 2 lanes
lanescancmpt
bm25
0
··
hnsw
0
··
fuseawaiting candidates
top resultsrrf · k=60
  • 10x9a4cred leather wallet · vintage8.4·0.92
  • 20x4ee1leather card holder · slim6.1·0.88
  • 30x71b3wallet care guide5.7·0.71
  • 40x2c08crimson coin purse2.3·0.84
12.4M docs · 1.2 GB resident
total latency0µs

Why Bridge

Most search stacks are too big for the work they do.

Bridge does the same retrieval in less code, less RAM, and less time, because it's written that way on purpose.

    01

    It runs where your code runs.

    No round trip to a search cluster, no JSON serialization tax. Bridge lives in your process, reads from mapped memory, and returns before a network call could even start.

    02

    It uses both signals at once.

    BM25 and embeddings answer different questions about the same query. Bridge runs them together so a SKU and a vibe both end up on the first page. No re-rank pipeline to glue together.

What Bridge isn't

Three things people assume, and the actual answer.

The category is crowded with bigger systems. Here's what makes Bridge structurally different.

    01

    Not a vector database

    Vector-only stores collapse on exact-term queries. Bridge keeps a real keyword index alongside the vector one, and fuses them on every query. Neither lane is bolted on.

    02

    Not a search cluster

    No coordinators, no shards to rebalance, no JVM heap to tune. Bridge is a process. You scale it the way you scale your app, because it lives there.

    03

    Not multi-modal by default

    Text is the hot path. If you bring image or audio embeddings, Bridge will index them in the same dense lane and treat them like any other vector. We don't pretend it's the headline.

Common questions

What teams ask before they wire it in.

    01What language is Bridge written in?

    Rust on the hot path, with hand-tuned SIMD for vector distance and posting-list scans. The library exposes C, Python, Go, and Node bindings so you can call it from whatever your service is written in.

    02How do we feed it data?

    Two write paths. A streaming ingest API for incremental updates, and an offline build for cold starts. Indexes are mmap files. Hot reloads are atomic and don't block readers.

    03Where do embeddings come from?

    Bring your own. Bridge stores and searches vectors of any dimension. We ship reference adapters for OpenAI, Cohere, and a handful of self-hosted text encoders, but the engine is model-agnostic.

    04Can it index images or audio?

    Yes, but it's not the headline. If your encoder produces a fixed-dim vector, Bridge will index it in the dense lane and search it the same way. Multi-modal is supported, not assumed.

    05How big does it scale?

    A single Bridge process handles tens of millions of documents on a normal box. Above that, run multiple shards behind a thin router. There is no orchestration layer to operate.

    06Is it open source?

    The core engine is. The managed build (replication, snapshots, observability, hosted control plane) is the commercial product.

Pricing

Free to embed. Paid when you want someone else to run it.

The library is open. The managed product is what you reach for the day pager duty starts to matter.

    Plan 01

    Core

    Free · MIT

    The engine, on your hardware

    The Bridge library and CLI. Everything you need to embed hybrid search in your product. Self-hosted, no telemetry, no rate limits.

    • Rust + C / Python / Go / Node bindings
    • BM25 + HNSW with RRF fusion
    • mmap indexes, streaming ingest
    • Community support
    Recommended

    Plan 02

    Managed

    From $299/mo

    For shipping product teams

    A hosted Bridge cluster with replication, snapshots, and a control plane. Usage-based on indexed documents, not queries.

    • Multi-node replication and failover
    • Point-in-time snapshots and rebuilds
    • Latency and recall dashboards
    • SOC2-ready data handling
    • Email + Slack support

    Plan 03

    Enterprise

    Custom

    Single-tenant deployment

    Self-hosted in your VPC, on-prem, or air-gapped. For regulated environments and high-volume products that need a human on call.

    • VPC, on-prem, or air-gapped install
    • Custom retention and audit
    • SSO, SAML, SCIM
    • Dedicated solutions engineer
    • Procurement-friendly contracts

§ 03  ·  Engagement intake

01 / Start a brief

Talk to the people who’ll do the work.

We staff small and senior, scope by phase, and end on a written deliverable. We don’t sell decks or hours.

If we’re not the right team for the job, we say so on the first call. The bar is production, not pitch.

team@grouplabs.ca
Compose a brief30 min · intro
WGS84YYC / YUL
CalgaryYYC
51.05°N · 114.07°W
MontrealYUL
45.51°N · 73.55°W
Δ 3,020 km

02 / Where to find us

01

Calgary, Alberta

Studio HQ
+1 (587) 700-9968
Lat / Lng
51.0486°N · 114.0708°W
Local
—:— MST · UTC−07
02

Montreal, Quebec

Satellite office
+1 (825) 365-9891
Lat / Lng
45.5089°N · 73.5542°W
Local
—:— EST · UTC−05