← all repositories
oramasearch/orama

A search engine that refuses to stay on the server

Orama packs full-text, vector, and RAG search into a TypeScript library that runs in browsers, servers, and edge workers without a separate backend.

10.5k stars TypeScript RAG · Search
orama
Not currently ranked — collecting fresh signals.
star history

What it does

Orama is an in-process search engine that indexes and queries data through full-text, vector, and hybrid modes from inside a JavaScript runtime. It recently added an AnswerSession class for RAG-style chat over indexed documents, turning the same library into a lightweight retrieval backend for generative UI. You declare a schema up front—vector dimensions included—and then insert, filter, and search through a straightforward API.

The interesting bit

Rather than bolting vector search onto a traditional text engine, Orama treats embeddings as a first-class column type and offers plugins that generate them at insert-time via TensorFlow.js or securely proxy OpenAI from the client. That means you can evolve from keyword search to a ChatGPT-like RAG experience without swapping out your index or adding a new service.

Key highlights

  • Toggle between full-text, vector, and hybrid search with a single mode parameter on the search method
  • Schema supports 10 data types, including geopoint and fixed-size vector[<size>] arrays
  • Plugin ecosystem covers embeddings, secure client-side OpenAI proxy, analytics, and framework integrations for Vitepress, Docusaurus, Astro, and Nextra
  • Built-in typo tolerance, exact match, field boosting, facets, and stemming across 30 languages
  • Runs in browsers, servers, and edge workers under an Apache 2.0 license

Caveats

  • Vector and hybrid search require supplying your own embeddings at query time unless you add the TensorFlow.js-backed embeddings plugin
  • The RAG chat features rely on OpenAI APIs; the README recommends a secure-proxy plugin to handle those client-side
  • Vector dimensions must be declared in the schema at initialization, so you need to know your embedding model’s size upfront

Verdict

A solid bet if you want modern search and retrieval inside a single deployable unit without managing a dedicated daemon. Look elsewhere if you need a distributed, multi-node search cluster or strictly offline LLM inference.

Frequently asked

What is oramasearch/orama?
Orama packs full-text, vector, and RAG search into a TypeScript library that runs in browsers, servers, and edge workers without a separate backend.
Is orama open source?
Yes — oramasearch/orama is an open-source project tracked on heatdrop.
What language is orama written in?
oramasearch/orama is primarily written in TypeScript.
How popular is orama?
oramasearch/orama has 10.5k stars on GitHub.
Where can I find orama?
oramasearch/orama is on GitHub at https://github.com/oramasearch/orama.

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