GitHub release (latest by date including pre-releases) GitHub go.mod Go version Go Report Card GitHub Workflow Status

Download

As described in the documentation, a complete Letarette installation needs four components:

  1. NATS server (Available here)
  2. Letarette Service (This page)
  3. Document Manager (See Client libraries below)
  4. Search Agent (See Client libraries below)

Letarette service

The Letarette service is a single binary service, developed and tested on Linux, MacOS and Windows. It is available as pre-built binaries for all platforms, and as a Docker image.

Download v0.2 binaries

Letarette on docker hub

Test data

To get a test installation up and running, to get a feel of what Letarette is all about, you can download the Letarette service and a small test index. This way you can simply launch the service and run queries using the lrcli tool without having to integrate with your own data.

letarette.db.gz

This is a tiny test index, built from the book "365 Luncheon Dishes - A Luncheon Dish for Every Day in the Year", originally published in 1902, fetched from the Gutenberg Project at http://www.gutenberg.org/2/4/3/8/24384/.

Client libraries

The client libraries provide implementations of the Search Agent and Document Manager roles to simplify integration with Letarette.

There are no language-specific dependencies between these roles, so you can use one library for the search part and different one for providing documents.

SQL

The easiest way to integrate with Letarette is to use the SQL Document Manager, which only requires two SQL queries and a connection string to get up and running.

The SQL Document Manager supports PostgreSQL, MySQL, SQLite and SQL Server.


Go

The Go client library is a reference implementation, distributed as part of the main Letarette distribution. It has no direct dependencies to the Letarette service, and is its own Go module:

import "github.com/erkkah/letarette/pkg/client"

func main() {
    agent, err := client.NewSearchAgent("localhost")
    // et.c.
}

Javascript (Node.js)

The Javascript library provides both Search Agent and Document Manager roles for integration in a Node.js - based application.

The library is implemented in Typescript and comes with full type info.