vectorless 0.1.2

Hierarchical, reasoning-native document intelligence engine
Documentation

Vectorless

Crates.io Downloads Documentation License Rust

A hierarchical, reasoning-native document intelligence engine.

Star us on GitHub — it helps the project grow!

Features

  • Tree-based indexing — Documents organized as hierarchical trees, not flat vectors
  • LLM-driven retrieval — Uses reasoning to navigate document structure
  • No vector database — Eliminates embedding infrastructure complexity
  • Multi-format support — Markdown, PDF (basic), HTML/DOCX (planned)
  • Workspace persistence — LRU-cached storage with lazy loading
  • Pluggable retrievers — LLM navigate, beam search, MCTS, hybrid

Quick Start

use vectorless::client::{Vectorless, VectorlessBuilder};

#[tokio::main]
async fn main() -> vectorless::core::Result<()> {
    // Create client (auto-loads config from ./vectorless.toml)
    let mut client = VectorlessBuilder::new()
        .with_workspace("./workspace")
        .build()?;

    // Index a document
    let doc_id = client.index("./document.md").await?;

    // Query
    let result = client.query(&doc_id, "What is this about?").await?;
    println!("{}", result.content);

    Ok(())
}

Configuration

Create vectorless.toml in your project root (auto-detected):

Installation

Add to Cargo.toml:

[dependencies]
vectorless = "0.1"
tokio = { version = "1", features = ["full"] }

API Overview

// Indexing
let doc_id = client.index("./doc.pdf").await?;
let doc_id = client.index("./notes.md").await?;

// Query
let result = client.query(&doc_id, "question").await?;
println!("Score: {}", result.score);
println!("Nodes: {:?}", result.node_ids);

// Document management
let docs = client.list_documents();
let tree = client.get_structure(&doc_id)?;
client.remove(&doc_id)?;

Contributing

⭐ If you find this project useful, please consider giving it a star on GitHub — it helps others discover it and supports ongoing development.

License

Apache-2.0