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.1-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.1-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.1-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.1-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.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.1-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.1-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.1-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.1-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.1-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.1-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.1-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.1-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.1-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.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8494d7f67b5e5ddc8c073002a7be4425ff27911c8f954e429ae35cc4737b6cd6
MD5 ffc602b1546fd87ed74e78f803ae2515
BLAKE2b-256 61b21cf30692e99a6b31bf6baece27c61226ddb0ae729145fc316f83b860a9b1

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d8448b4cca62414a401f357e3758536c2171b9baeb8f719cb94ad0d15f3ce984
MD5 a285b2311c7c92a5da3dfc94834a02e9
BLAKE2b-256 33c6259e99537b649b12a9c60727d88b8ce910c85b522f2e0e435f5be5c3d9af

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90cf5209559f53e3cddb9905bfc446b7e126d50ee8871cb1c7dee37677db66ad
MD5 42e2fa20afaeaff4584388a3d6faca94
BLAKE2b-256 964abdf0911127570006268ee37e5da67230f3e1604f2c5bfdeef406a87e8401

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a1713d4c8b6853e2af9d7d1c93517c8afc2b54a819e086d1453f8239b3c12cc
MD5 a2f59cafe8589c82c01c33f0cd3218d9
BLAKE2b-256 719ac3926cc479506d7194d0e7422f0aaa8e7c3787f108372613440c794772b6

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c9d8eb01e851b7a6831c4ca3607677538abd71f113ab0581b1b0d7726a5d89ce
MD5 ea3d6ae1abe6a9946bb67a145a294555
BLAKE2b-256 f6c4431d9e37934e7e3c35786cdedaa6917d76c8c983de78a1f9fb1a6e6e8288

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c84c5d32db5e7eb8d222f46725f99868daf3624ca8b9890a97fbf8d3b370c0b
MD5 0feca396d2ac0eed9ac577b0a00c0988
BLAKE2b-256 616ccf5ca7a3ec3929d9666bea152e3e0203eaa41aa79a2b777c35329a60bdac

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39dd53a23866c9e8c805363ba0ba5434d938fccf876dc419bcf1ad4e047864fc
MD5 5be30773a6639814fa4afd4852ef4bdc
BLAKE2b-256 788409f7fcfff34a2ac727fe836d1caed396dd4102fdc406397ba804003a6b76

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d640bb11f376c039117f939edb83dedc17c8bdf27fe3ee4f1e311b4a6059e9af
MD5 0818c3999cd7282679b2af2100752e0c
BLAKE2b-256 96648e92e39f38f66fe9dfc3a5c0f827ca994328f81dd9fddfe2a0d84fb84841

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee4943cbb36eba28187f4d0a726af297db4d6ac4e0e9da7c3b5b8c2a4062b8ce
MD5 3aad9f8635ae02bee5fe013f3d97a7ab
BLAKE2b-256 ffdb815403c803d5d3bdd9c6933874e57aad65c8565e5a1ae9b76f30274604fd

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9ade5ee9216c40c5e549f91f3a4ec27c0d183daa1ec3004cb68ff3a610f5007
MD5 6ce3bc1a5ff2008eb245d98e3421bb8f
BLAKE2b-256 c112bb90b884fb3474660a84feb6a1448027ed0bf55ae4b0339f30b260628ce4

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dae70e02badb238626aec80128a9cd1b4afc7a4c0b8bdd78e2c39ce030f41e8f
MD5 7c2cc7705381303a9805d7edc76c640b
BLAKE2b-256 b3a90d059264bb28e0443dfb0e81dc3ed08f71e630041f8de779d1bb1abf7e80

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f5e7216e752c94c4f02a1d5c659a922c5d93105d385258fe9cc852c9989ae9c
MD5 4763aa2ce603c51f7bd36c2aa26866a1
BLAKE2b-256 e072bd0d45535f21b99bed3ce75e1ea67760117d91674c3bf1d4284c06190fef

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e3b38439b6ecf2eafe7b3fd757fed8a36445bbeea21d5c4d218fdac30a6ddd75
MD5 2d9339efb26970daea08098d2a342931
BLAKE2b-256 60b361081f5342f8ed8bb21932e1dd2a242ffac66283d8f461da517a9460997d

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 807f7a7826f84b3c2015fe2c17f3c8b4b267b8daceb76dc12950ce63d17d5a15
MD5 12937801e24ae133ef5a8c99fcbf026c
BLAKE2b-256 75a5793b75172c017c21f7c65e68df95ab0e26db848c0c44fc7727cc26d5b66e

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df31d4ffe6eb95dd8901364da502d9dda12eb3678ea9a4be35c6e13f17d62fed
MD5 d2dfabef0030b834f7e0d3ab2fd698c3
BLAKE2b-256 57219ec4f18ac34934b05d9f326ab756f5fa9b814d4a45c30dde61fb080d3241

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