Repolode
xerj-org

xerj-org/xerj

Mecanismo de busca local com IA que indexa automaticamente qualquer pasta (código, documentos, logs, PDFs) e oferece a API do Elasticsearch, feito em Rust.

Alternativa open source a:Elasticsearch

Estrelas
8,758
Forks
470
Issues abertas
86
Último commit
ontem

O que é?

O XERJ é um binário único em Rust que indexa uma pasta com um comando: `xerj autoindex <folder>`. Ele detecta os tipos de arquivo automaticamente e cria um índice consultável por conjunto de dados. A indexação abrange código-fonte (analisado com tree-sitter para preservar símbolos e números de linha), CSV, JSON, YAML, SQLite, PDF, documentos do Office, e-mails e arquivos de log, sem precisar criar um schema ou pipeline.

O projeto foi pensado para permitir que agentes de programação e pipelines RAG recuperem trechos exatos, em vez de ler arquivos inteiros. A busca oferece pesquisa de texto completo com BM25, busca vetorial kNN e consultas híbridas pela API REST do Elasticsearch, permitindo conectar diretamente clientes Elasticsearch existentes e o Kibana. Um servidor MCP disponibiliza ferramentas de busca, memória e grafo para clientes compatíveis com MCP, como Claude Code e Cursor.

O embedder padrão é lexical e funciona offline; um embedder neural é opcional e requer o download prévio dos arquivos do modelo. O modo de desenvolvimento `--insecure` desativa TLS e autenticação, por isso foi pensado para uso individual em uma máquina local.

Recursos principais

  • 01Indexa automaticamente uma pasta com um comando, detectando os tipos de arquivo e criando um índice por conjunto de dados.
  • 02Analisa código-fonte com tree-sitter, preservando símbolos e números de linha.
  • 03Oferece uma API REST compatível com Elasticsearch, permitindo conectar diretamente clientes existentes e o Kibana.
  • 04Oferece busca de texto completo com BM25, busca vetorial kNN e busca híbrida em um único mecanismo.
  • 05Inclui um servidor MCP para agentes como Claude Code e Cursor.
  • 06Distribuído como um único binário estático, sem JVM, para Linux, macOS e Windows.

Casos de uso

  • Permitir que um agente de programação encontre funções específicas em uma base de código, em vez de ler arquivos inteiros.
  • Criar sistemas RAG ou de perguntas e respostas sobre bases de código e documentos locais, sem um banco de dados vetorial separado.
  • Fazer auditorias de segurança consultando padrões de sinks ou segredos em uma árvore de código-fonte.
  • Substituir uma implantação autogerenciada do Elasticsearch para analisar logs em uma única máquina.

Início rápido

  1. 1
  2. 2

    Inicie o servidor para desenvolvimento local (sem TLS nem autenticação)

    xerj --insecure --data-dir ./data &
  3. 3

    Indexe a pasta que preferir

    xerj autoindex ~/my-project
  4. 4

    Execute uma consulta de busca na pasta indexada

    xerj search "how do we rotate the WAL segment"

Antes de usar

  • A flag --insecure desativa o TLS e a autenticação por API key, portanto só é segura para uma pessoa em uma máquina de desenvolvimento.
  • O modo de embeddings neurais é opcional e baixa cerca de 90 MB de arquivos de modelo.

Tópicos

Perguntas frequentes

O que é xerj?
Mecanismo de busca local com IA que indexa automaticamente qualquer pasta (código, documentos, logs, PDFs) e oferece a API do Elasticsearch, feito em Rust. O XERJ é um binário único em Rust que indexa uma pasta com um comando: `xerj autoindex <folder>`. Ele detecta os tipos de arquivo automaticamente e cria um índice consultável por conjunto de dados. A indexação abrange código-fonte (analisado com tree-sitter para preservar símbolos e números de linha), CSV, JSON, YAML, SQLite, PDF, documentos do Office, e-mails e arquivos de log, sem precisar criar um schema ou pipeline.
xerj é gratuito? Qual é a licença?
xerj é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
xerj ainda é mantido?
Manutenção ativa. O último commit de xerj foi em 19 de out. de 2026.
Para que posso usar xerj?
Permitir que um agente de programação encontre funções específicas em uma base de código, em vez de ler arquivos inteiros. Criar sistemas RAG ou de perguntas e respostas sobre bases de código e documentos locais, sem um banco de dados vetorial separado. Fazer auditorias de segurança consultando padrões de sinks ou segredos em uma árvore de código-fonte. Substituir uma implantação autogerenciada do Elasticsearch para analisar logs em uma única máquina.
Como instalar xerj?
Baixe e instale o binário Inicie o servidor para desenvolvimento local (sem TLS nem autenticação): xerj --insecure --data-dir ./data & Indexe a pasta que preferir: xerj autoindex ~/my-project Execute uma consulta de busca na pasta indexada: xerj search "how do we rotate the WAL segment"
Onde consigo xerj?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/xerj-org/xerj

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados