Skip to content

A pure Python-implemented, lightweight, server-optional, multi-end compatible, vector database deployable locally or remotely.

License

Notifications You must be signed in to change notification settings

BirchKwok/lynsedb

Repository files navigation

LynseDB logo

Discord PyPI version PyPI - Python Version Python testing Docker build

LynseDB is a vector database implemented purely in Python, designed to be lightweight, server-optional, and easy to deploy locally or remotely. It offers straightforward and clear Python APIs, aiming to lower the entry barrier for using vector databases.

It focuses on achieving 100% recall, prioritizing recall accuracy over high-speed search performance. This approach ensures that users can reliably retrieve all relevant vector data, making LynseDB particularly suitable for applications that require responses within hundreds of milliseconds.

LynseDB features

Server-optional, simple parameters, simple API.

Fast, memory-efficient, easily scales to millions of vectors.

Based on a generic Python software stack, platform-independent, highly versatile.

Recall-prioritized design, lifecycle search caching technology, FieldExpression fast filtering, Field multi-type indexing, and other user-centric features

Some Defects You Should Know

  • Not yet backward compatible

LynseDB is actively being updated, and API backward compatibility is not guaranteed. You should use version numbers as a strong constraint during deployment to avoid unnecessary feature conflicts and errors.

  • Data size constraints

Although our goal is to enable brute force search or inverted indexing on billion-scale vectors, we currently still recommend using it on a scale of millions of vectors or less for the best experience.

  • Python's native api is not process-safe

The Python native API is recommended for use in single-process environments, whether single-threaded or multi-threaded; for ensuring process safety in multi-process environments, please use the HTTP API.

Installation

Prerequisite

  • python version >= 3.9
  • Owns one of the operating systems: Windows, macOS, or Ubuntu (or other Linux distributions). The recommendation is for the latest version of the system, but non-latest versions should also be installable, although they have not been tested.
  • Memory >= 4GB, Free Disk >= 4GB.

Install Client API package (Mandatory)

pip install LynseDB

If you wish to use Docker (Optional)

You must first install Docker on the host machine.

After installing the Client API package:

docker pull birchkwok/lynsedb:latest