Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

@xnetjs/query

Local query engine, full-text search, and federated query routing for xNet.

Status: Stable secondary surface Primary app-facing query/runtime work should go through @xnetjs/react and the bridge/runtime contract. @xnetjs/query remains the lower-level search/query toolkit used underneath those app surfaces.

Installation

pnpm add @xnetjs/query

Features

  • Local query engine -- Filter, sort, paginate nodes from local storage
  • Full-text search -- MiniSearch-powered indexing and search
  • Federated query router -- Route local queries now, remote sources when available

Usage

import { createLocalQueryEngine } from '@xnetjs/query'

// Create query engine
const engine = createLocalQueryEngine(listDocumentIds, getDocument)

// Query with filters, sorting, and pagination
const results = await engine.query({
  type: 'page',
  filters: [{ field: 'workspace', operator: 'eq', value: 'default' }],
  sort: [{ field: 'updated', direction: 'desc' }],
  limit: 20,
  offset: 0
})
import { createSearchIndex } from '@xnetjs/query'

// Full-text search
const index = createSearchIndex()
index.add(doc)
index.add(anotherDoc)

const matches = index.search({ text: 'hello', limit: 10 })
import { createFederatedQueryRouter } from '@xnetjs/query'

// Federated router (local execution today)
const router = createFederatedQueryRouter(networkNode, engine)
const results = await router.execute(queryParams)

Architecture

flowchart LR
    App["Application"]
    Local["LocalQueryEngine<br/><small>Filter, sort, paginate</small>"]
    Search["SearchIndex<br/><small>MiniSearch FTS</small>"]
    Fed["FederatedQueryRouter<br/><small>Cross-hub queries</small>"]

    App --> Local
    App --> Search
    App --> Fed
    Fed --> Hub1["Hub A"]
    Fed --> Hub2["Hub B"]
Loading

Modules

Module Description
local/engine.ts Local query engine
search/index.ts MiniSearch full-text search index
federation/router.ts Federated query routing
types.ts Query, Filter, Sort types

Dependencies

  • @xnetjs/core, @xnetjs/data, @xnetjs/identity, @xnetjs/network, @xnetjs/storage
  • minisearch -- Full-text search engine

Testing

pnpm --filter @xnetjs/query test