Skip to main content

AlayaLite Python extension module

Project description

AlayaDB Log

AlayaLite – A Fast, Flexible Vector Database for Everyone.
Seamless Knowledge, Smarter Outcomes.

release PyPi LICENSE codecov CI

Features

  • High Performance: Modern vector techniques integrated into a well-designed architecture.
  • Elastic Scalability: Seamlessly scale across multiple threads, which is optimized by C++20 coroutines.
  • Adaptive Flexibility: Easy customization for quantization methods, metrics, and data types.
  • Ease of Use: Intuitive APIs in Python.

Getting Started!

Get started with just one command!

pip install alayalite # install the python package.

Access your vectors using simple APIs.

from alayalite import Client, Index
from alayalite.utils import calc_recall, calc_gt
import numpy as np

# Initialize the client and create an index. The client can manage multiple indices with distinct names.
client = Client()
index = client.create_index("default")

# Generate random vectors and queries, then calculate the ground truth top-10 nearest neighbors for each query.
vectors = np.random.rand(1000, 128).astype(np.float32)
queries = np.random.rand(10, 128).astype(np.float32)
gt = calc_gt(vectors, queries, 10)

# Insert vectors to the index
index.fit(vectors)

# Perform batch search for the queries and retrieve top-10 results
result = index.batch_search(queries, 10)

# Compute the recall based on the search results and ground truth
recall = calc_recall(result, gt)
print(recall)

Benchmark

We evaluate the performance of AlayaLite against other vector database systems using ANN-Benchmark (compile locally and open -march=native in your CMakeLists.txt to reproduce the results). Several experimental results are presented below.

Fashion-MNIST	784 Euclidean Gist 960 Euclidean
Fashion-MNIST 784 Euclidean
Gist 960 Euclidean

Contributing

We welcome contributions to AlayaLite! If you would like to contribute, please follow these steps:

  1. Start by creating an issue outlining the feature or bug you plan to work on.
  2. We will collaborate on the best approach to move forward based on your issue.
  3. Fork the repository, implement your changes, and commit them with a clear message.
  4. Push your changes to your forked repository.
  5. Submit a pull request to the main repository.

Please ensure that your code follows the coding standards of the project and includes appropriate tests.

Acknowledgements

We would like to thank all the contributors and users of AlayaLite for their support and feedback.

Contact

If you have any questions or suggestions, please feel free to open an issue or contact us at dev@alayadb.ai.

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

alayalite-0.1.0a3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

alayalite-0.1.0a3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

alayalite-0.1.0a3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

alayalite-0.1.0a3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

alayalite-0.1.0a3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

alayalite-0.1.0a3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

alayalite-0.1.0a3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

alayalite-0.1.0a3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

alayalite-0.1.0a3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

alayalite-0.1.0a3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

alayalite-0.1.0a3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

alayalite-0.1.0a3-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file alayalite-0.1.0a3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42638e81a1b4fb7d333df78b5c20f55a3e51ebf36ca02f021d85fb9cebd27d13
MD5 9973ca3f2a8466716d88fb6acaddf85a
BLAKE2b-256 903640e6395e9138276973b22111180c0d46d747bdef138beb8303b63892ee4d

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cfce5c7462cedb77ef63dfe3107316af67ff2ff63ae64de20178ca2361d4a240
MD5 82b18b773f2fbf8d946065f0167e4e88
BLAKE2b-256 596051dfc8ebf908b93fd7839ed0f835de503af03428b6bdc9e7ececf17edd29

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59b8a276ca9ada8288a32b42a7153e593b1500c85f6825297980c073d72295ed
MD5 2af21e0f75112663ae21e123d9c11b77
BLAKE2b-256 2e7afa3c61598e8c4ffc4f5a5cabd56ceea604a3ab42fcf5baddafc0b3309c0f

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6e30dd18db3302bffcc851f743328009c26bf14a421505ab50994626252e0a34
MD5 0eb6e9ff826ea4dc8fee44a71371ec35
BLAKE2b-256 5f66c93f0448b5845660915bc5ea0b8e573ef4ca62b7483de8e5754854aba8e8

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b641d1eb06c43c45987b74674fd12558f3c5ff62b22121067fa23efe8db10b7
MD5 8ee9454413194f740c26944e0800d40c
BLAKE2b-256 660724581a78f7f7b1a16f13eb76fd34b5bc35f8fc627d4738ec3387fc1fc6ea

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8b85760e75ceae7339678d9c66f6fe4240224e9af952f4ed09a719c60ba6b758
MD5 d441863a5f7f7c4897ee805817acdfa0
BLAKE2b-256 b6cbb76ac8758e20a78acab6673b89842faa3a874d7647380d1d218e42e1c77f

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cd6353666afe83e943f0b55c7987e42a14a25d407548887445ab31b5813b66d2
MD5 15ee305a566b8ff232631bb18b17d800
BLAKE2b-256 0e1931137c0fe1cef9d9cbc6b925def24286f3b8d12e4df26c563f42b240ca8b

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b5abb407fb3d569814d77785eb6859fbb7a19f2dcf73a9a3162448cd188954cf
MD5 740740480c79c368ce33e0e3761ab944
BLAKE2b-256 89ccd09b6561c1b5c14cdbd0290d847d1f65273737ee22973b80588e2880c501

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10aba2e5fd8c55c3f239adbb005cbd9ff58c107dd01fe6f2d4c641193fc18965
MD5 8da4e695fb7adbb67f49eb0bd6699fd0
BLAKE2b-256 254c7852203d85b1c6a31770c450da66b6a8a973f777f6c64b498989aaa87cde

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 82bc581ee8067abd500b23ad0b4b1670068e394f5d53c63e1f0f334a47edd91c
MD5 6d851bc613c484343afe82bd9882d660
BLAKE2b-256 e8d9d0e3d2fa67c8103144d5b8449b7db877486196e9c79498218a58a9cb619a

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b2c117469ef22dbf849c6e3cb376d00d274bcb4ec676e6ed3e44f9e264e20fc8
MD5 18d00a34aea9463dc628a310aff2e959
BLAKE2b-256 ec619b36ecdad0d120649967e3aafc941c8caa94e88ac922705a43855bd70dfb

See more details on using hashes here.

File details

Details for the file alayalite-0.1.0a3-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for alayalite-0.1.0a3-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e777b407696a4cb0ae3240e39bddef75a6e7744ef4515a77eaea905e0d7f032c
MD5 509a777368d8f31ce4d70c80cb9d2338
BLAKE2b-256 c7aa28221a46c8f2f776935df3b30e95d71c47907c541e0fca2aa63278366b71

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page