LynseDB


NameLynseDB JSON
Version 0.1.5 PyPI version JSON
download
home_pagehttps://github.com/BirchKwok/MinVectorDB
SummaryA pure Python-implemented, lightweight, server-optional, multi-end compatible, vector database deployable locally or remotely.
upload_time2024-09-25 07:33:27
maintainerNone
docs_urlNone
authorBirch Kwok
requires_python>=3.9
licenseNone
keywords vector database
VCS
bugtrack_url
requirements numpy spinesUtils msgpack scikit-learn cloudpickle pyroaring flask waitress tqdm setuptools httpx ruamel.yaml simsimd usearch
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <picture>
    <source media="(prefers-color-scheme: light)" srcset="https://github.com/BirchKwok/LynseDB/blob/main/logo/logo.png">
    <source media="(prefers-color-scheme: dark)" srcset="https://github.com/BirchKwok/LynseDB/blob/main/logo/logo.png">
    <img alt="LynseDB logo" src="https://github.com/BirchKwok/LynseDB/blob/main/logo/logo.png" height="100">
  </picture>
</div>
<br>

<p align="center">
  <a href="https://discord.com/invite/rcYK5nYF"><img src="https://img.shields.io/badge/Discord-Online-brightgreen" alt="Discord"></a>
  <a href="https://badge.fury.io/py/LynseDB"><img src="https://badge.fury.io/py/LynseDB.svg" alt="PyPI version"></a>
  <a href="https://pypi.org/project/LynseDB/"><img src="https://img.shields.io/pypi/pyversions/LynseDB" alt="PyPI - Python Version"></a>
  <a href="https://github.com/BirchKwok/LynseDB/actions/workflows/python-tests.yml"><img src="https://github.com/BirchKwok/LynseDB/actions/workflows/python-tests.yml/badge.svg" alt="Python testing"></a>
  <a href="https://github.com/BirchKwok/LynseDB/actions/workflows/docker-tests.yml"><img src="https://github.com/BirchKwok/LynseDB/actions/workflows/docker-tests.yml/badge.svg" alt="Docker build"></a>
</p>


**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)

```shell
pip install LynseDB
```

### If you wish to use Docker (Optional)

You must first [install Docker](https://docs.docker.com/engine/install/) on the host machine.

After installing the [Client API package](#install-client-api-package-mandatory):

```shell
docker pull birchkwok/lynsedb:latest
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/BirchKwok/MinVectorDB",
    "name": "LynseDB",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "vector database",
    "author": "Birch Kwok",
    "author_email": "birchkwok@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/b7/19/425a5c3796145f05aac2286c89c70b365a808d90a57eb5d9ebd4c149b1a5/lynsedb-0.1.5.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <picture>\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/BirchKwok/LynseDB/blob/main/logo/logo.png\">\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/BirchKwok/LynseDB/blob/main/logo/logo.png\">\n    <img alt=\"LynseDB logo\" src=\"https://github.com/BirchKwok/LynseDB/blob/main/logo/logo.png\" height=\"100\">\n  </picture>\n</div>\n<br>\n\n<p align=\"center\">\n  <a href=\"https://discord.com/invite/rcYK5nYF\"><img src=\"https://img.shields.io/badge/Discord-Online-brightgreen\" alt=\"Discord\"></a>\n  <a href=\"https://badge.fury.io/py/LynseDB\"><img src=\"https://badge.fury.io/py/LynseDB.svg\" alt=\"PyPI version\"></a>\n  <a href=\"https://pypi.org/project/LynseDB/\"><img src=\"https://img.shields.io/pypi/pyversions/LynseDB\" alt=\"PyPI - Python Version\"></a>\n  <a href=\"https://github.com/BirchKwok/LynseDB/actions/workflows/python-tests.yml\"><img src=\"https://github.com/BirchKwok/LynseDB/actions/workflows/python-tests.yml/badge.svg\" alt=\"Python testing\"></a>\n  <a href=\"https://github.com/BirchKwok/LynseDB/actions/workflows/docker-tests.yml\"><img src=\"https://github.com/BirchKwok/LynseDB/actions/workflows/docker-tests.yml/badge.svg\" alt=\"Docker build\"></a>\n</p>\n\n\n**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.\n\nIt 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.\n\n## LynseDB features\n\n\u26a1 **Server-optional, simple parameters, simple API.**\n\n\u26a1 **Fast, memory-efficient, easily scales to millions of vectors.**\n\n\u26a1 **Based on a generic Python software stack, platform-independent, highly versatile.**\n\n\u26a1 **Recall-prioritized design, lifecycle search caching technology, FieldExpression fast filtering, Field multi-type indexing, and other user-centric features**\n\n## Some Defects You Should Know\n\n- Not yet backward compatible\n\nLynseDB 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.\n\n- Data size constraints\n\nAlthough 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.\n\n- Python's native api is not process-safe\n\nThe 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.\n\n\n## Installation\n\n### Prerequisite\n\n- python version >= 3.9\n- 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.\n- Memory >= 4GB, Free Disk >= 4GB.\n\n### Install Client API package (Mandatory)\n\n```shell\npip install LynseDB\n```\n\n### If you wish to use Docker (Optional)\n\nYou must first [install Docker](https://docs.docker.com/engine/install/) on the host machine.\n\nAfter installing the [Client API package](#install-client-api-package-mandatory):\n\n```shell\ndocker pull birchkwok/lynsedb:latest\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A pure Python-implemented, lightweight, server-optional, multi-end compatible, vector database deployable locally or remotely.",
    "version": "0.1.5",
    "project_urls": {
        "Homepage": "https://github.com/BirchKwok/MinVectorDB"
    },
    "split_keywords": [
        "vector",
        "database"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "86cda68c6c9f6b4a7e22af0e01b9bd5a65b50d32aa1995dc2e97975ce4e17f40",
                "md5": "5e822fed9a42c4c40ec9f2e596d41bce",
                "sha256": "f98e11e1985448df0c9f207249219fddf9a2c5c82d7780dc0469651206c8566e"
            },
            "downloads": -1,
            "filename": "LynseDB-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5e822fed9a42c4c40ec9f2e596d41bce",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 94534,
            "upload_time": "2024-09-25T07:33:25",
            "upload_time_iso_8601": "2024-09-25T07:33:25.017453Z",
            "url": "https://files.pythonhosted.org/packages/86/cd/a68c6c9f6b4a7e22af0e01b9bd5a65b50d32aa1995dc2e97975ce4e17f40/LynseDB-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b719425a5c3796145f05aac2286c89c70b365a808d90a57eb5d9ebd4c149b1a5",
                "md5": "4c0502a5c38ad3b3afc054f284a01326",
                "sha256": "d401127b5e16aaccb254f261863a4beca457d53f14bc728e473e06421f16ec34"
            },
            "downloads": -1,
            "filename": "lynsedb-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "4c0502a5c38ad3b3afc054f284a01326",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 74619,
            "upload_time": "2024-09-25T07:33:27",
            "upload_time_iso_8601": "2024-09-25T07:33:27.040144Z",
            "url": "https://files.pythonhosted.org/packages/b7/19/425a5c3796145f05aac2286c89c70b365a808d90a57eb5d9ebd4c149b1a5/lynsedb-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-25 07:33:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "BirchKwok",
    "github_project": "MinVectorDB",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.17.0"
                ]
            ]
        },
        {
            "name": "spinesUtils",
            "specs": [
                [
                    ">=",
                    "0.4.1"
                ]
            ]
        },
        {
            "name": "msgpack",
            "specs": [
                [
                    ">=",
                    "1.0.2"
                ]
            ]
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "cloudpickle",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "pyroaring",
            "specs": [
                [
                    ">=",
                    "0.4.5"
                ]
            ]
        },
        {
            "name": "flask",
            "specs": [
                [
                    ">=",
                    "2.0.1"
                ]
            ]
        },
        {
            "name": "waitress",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    ">=",
                    "4.65.0"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    ">=",
                    "68.0.0"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    ">=",
                    "0.19.0"
                ]
            ]
        },
        {
            "name": "ruamel.yaml",
            "specs": [
                [
                    ">=",
                    "0.18.6"
                ]
            ]
        },
        {
            "name": "simsimd",
            "specs": [
                [
                    ">=",
                    "4.4.0"
                ]
            ]
        },
        {
            "name": "usearch",
            "specs": [
                [
                    ">=",
                    "2.12.0"
                ]
            ]
        }
    ],
    "lcname": "lynsedb"
}
        
Elapsed time: 0.39686s