Skip to main content

Python SDK for enVector: encrypted vector search powered by homomorphic encryption

Project description

pyenvector — enVector Python SDK

Python SDK for enVector — encrypted vector search powered by fully homomorphic encryption (FHE).

Your vectors and similarity scores stay encrypted during the entire computation. The server never sees plaintext data.

Install

pip install pyenvector

Quick Start

import numpy as np
import pyenvector as ev

# Connect and load keys
ev.init(host="localhost", port=50050, key_path="./keys", key_id="my_key")

# Create an index
index = ev.create_index("my_index", dim=512)

# Insert vectors
vectors = np.random.randn(100, 512).astype(np.float32)
vectors /= np.linalg.norm(vectors, axis=1, keepdims=True)
metadata = [f"item_{i}" for i in range(100)]

index.insert(vectors, metadata=metadata)

# Search (encrypted end-to-end)
result = index.search(vectors[0], top_k=5, output_fields=["metadata"])
print(result)

# Clean up
ev.drop_index("my_index")
# ev.delete_key("my_key")  # optional: remove keys from server

Key Features

  • End-to-end encryption — vectors are encrypted on the client. Search runs on ciphertext via FHE. Scores are decrypted only on the client.
  • Familiar APIcreate_index, insert, search, drop_index. Works like Milvus or Pinecone.
  • Key management CLI — generate, seal, and upload HE keys to AWS S3 or GCP Cloud Storage.
  • Cloud-ready — deploy the enVector server on GKE, EKS, or on-prem.

Documentation

  • enVector Docs — deployment, architecture, API reference
  • GitHub — source, examples, issues

License

Proprietary. See LICENSE for details.

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.

pyenvector-1.4.2a2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.2a2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

pyenvector-1.4.2a2-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.2a2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.2a2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

pyenvector-1.4.2a2-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.2a2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.2a2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

pyenvector-1.4.2a2-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.2a2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.2a2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

pyenvector-1.4.2a2-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.2a2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.2a2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

pyenvector-1.4.2a2-cp39-cp39-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.2a2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71ef50d58e49c07b0c90667ee947278457225bdaaaffdbd28abbf5dd52d004cd
MD5 ae2d5e09cc6f308bb3b4c80cc05885d6
BLAKE2b-256 ff6069bd51f6b825b3d2cb4e492e8d3e9f8f328e9f4b8becb2123ee65dd0f354

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42d7c283679ff63780f9d7a5926cef4d585c7ed64091642f8a0c9c183fbfafb2
MD5 e57d01922024292ccde9d933a5248a3d
BLAKE2b-256 56702472fadcf12510ef0882ffec00c17a75e45f32ff5e824c09cb1dc12f0c62

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a163a3aea8a1f65f8d2de83ed1cfc56cc8fda47eb93cb2b1864d84ae5f36ecd
MD5 0de21fa39eef4a98a95e127f5f42f00d
BLAKE2b-256 b600d616a7d2b7bbd01fc3dd14773a4ba4d23ad1df2685dd91b4604ab7a551cc

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 28a024c4a282bbd7308dfb31920ee2ea6e7d2643e0b8c6c45a1c198e71a6a02b
MD5 9e930154aef64a23e04c43130088e74e
BLAKE2b-256 1faaac700750b225555960c25f064ee949c91dc18018d4ac96a27248067d5955

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5ee42cd51067c2457f0e9b8962982948e134188a6de056bcb249c8dfe29a7ad8
MD5 d2776acb5b8eee0bb77ecd2f45c81a29
BLAKE2b-256 a2d64b9b5ab84e9549abe82f53cea2c63acdfe2bb35d92a58942af53e2a9d268

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5119e1a67a54192c9a56083c4b66593e5cfe4c6053cfa76d140bc11e05519da8
MD5 7428ceacbf65aa3aeb4409533dcb7f6b
BLAKE2b-256 37a072bd21da8451520736391c47b3caa593d12e3a227dd7ded6d1daf2be6541

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ce8c4926cdcd6731c4f8fe48f4b64a36a92bfc1ad668c3ec934a5664ed5b4ca
MD5 e2e09839792072164c843b4e7f48c17a
BLAKE2b-256 5cc0fa47f50ef08fd46aeb28dc3e7f4a2698256c4e05f422d526e1afd62bd4d3

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e49450a3f313eaef6cc0cfd2a246294bc5bbb7f398c486ca39952417a065c87d
MD5 f97da300b862524c662e2d60fe4a2bde
BLAKE2b-256 f068a837abc872687bf85745d6ccfbe28c47677bdf773a93441a1140074661f3

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbdb4e4e3f0181a0c6f3f3c7ad77e8acc8a06828c3c936f53628412cec945afa
MD5 7ec091ed0c939342dead69c92dbbfe5a
BLAKE2b-256 b903679856b917aa7c3c35bdbd787963aaeb3a738849aeba2ca99e7f8b4e0c94

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 31a152b3380557e125e4017c341d5cbb93967af75a4c7b34526c48edf0f27ecb
MD5 f21995e0e02b7527fba1f41fa030313e
BLAKE2b-256 fedacec2a5d37c81543f5a7d96b442c94779138b1755ae305f8635e1ac532800

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eae8ff7f011c8a58aa90b461d9c5b722efa27777edb7cd70601dc1887111a67c
MD5 97585fbd8ef25efc007bddaae5c0d927
BLAKE2b-256 9430147ba8d3afbe8441c2c6c3a7da609037d063ea5d84261a5ac430a7073180

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0a67380477ac430bc2e16b1ad4b013bb389472fc07ba66e7cf1cdf5af59da89
MD5 6dbec91fd3dae12776fd5677ba7f07e7
BLAKE2b-256 0b17a34854849338049dd0476af9ad7acc59b387ce707f60ce3eccf331a32ef3

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c4f6011bc951ff3d779286c57736d5dc62e50a5c5343f3e621b754aa4c0e924d
MD5 3d50a5dc285ad94253a537da40d22d69
BLAKE2b-256 88e19ad26c5e29bd337aadcef24a1f1d58d80b3061f9a8e8da43d09a9a3a97bb

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4dae9b1bb5e1290f0b62abcbf4f9b3d5608ab91527cfe9a558191cad8f666ee2
MD5 a11a32cf2b912d8df79d50279f1383b0
BLAKE2b-256 8a80295e1adc217fd312bb58aea049f3b334d927b924f0110fe031b16eaca836

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29d44f753fb3238fe9701958d39bd17c6cb44eab4733bf5d815988e9d4bce09d
MD5 6019e9a0f23c746299990941c1979976
BLAKE2b-256 e4cd47c54c02652dba8b6c786465c6a7dbdf226abf3be6e1ae1382ff78e9bf96

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