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

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.0b1-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.0b1-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.0b1-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.0b1-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.0b1-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.0b1-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.0b1-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.0b1-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.0b1-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.0b1-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.0b1-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.0b1-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.0b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 227321c111bc5d48251ca0a6db56e656a6c8f51153110eb37e80fceb67aa360c
MD5 15a58d8bdbc767d0f7595a0319e46dea
BLAKE2b-256 31b907ab052687c55c48cea873120aaf9533cbcae531ec4e411c3df84fa56995

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 93c842b14089b132c332092394c855d71d358473d26fc0e9c114a2713f01842b
MD5 893536c1deb669c89cd92fdc06834b00
BLAKE2b-256 6633f1fda95de1907be6929e40b6a26fa0465024b0c666c2c91d9361eb83c7a7

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0fc2fa97cf2a31ed768952a3e136194586016e7d3a9dc55cca26b0439694d48
MD5 0d1cf5c3ddec273b3555dd8e2b1d486e
BLAKE2b-256 5d9535dd0acb9bea22e8943bdc9ec4181814bf9c79de7e23ccca43c207235b17

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d6750fb1779a46501ae1b779619126e1447e5c1376cd864aefe330016990c1e5
MD5 ebbc798f91c4c04d7d1d2cddf8780ad6
BLAKE2b-256 00a2fc5970671ae5eb869fda6b60ff976c800eef8e178b3acf330ea8a5f7bcb0

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bf398cb6faa4438b222eada0dc244348836bdf9d2f83163054e8c72c0484d5cd
MD5 5dd78526a73e73be394643b6b84fc340
BLAKE2b-256 d8bf7e4771bff767218dba1d595889554134fb20207ce26d2542745cbef3de29

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be345ac84f898afe85d30508692f40475d9656c10b007f397721754037d9403b
MD5 fb1e5ad6c6b18cff74774f7f57aaa7c2
BLAKE2b-256 86b4c307a9c28df6024b49c59067799d9d066c92aea7d739d6b873e8354f2cdf

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4919e249a8075b168099961fb6c9917990ec66d20ae2a9a5f27561ce1de7314
MD5 86b17a5c544eb83ebc384e6b8d93c9fe
BLAKE2b-256 d32d0c24997a1013aad78d942d46a0a50b27212deb1e2cf023d8a418e15c22ae

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 94414cae7667d0a729df630c6e3b4c7fab31ae4a0cad76b3f262ba52bbedcdac
MD5 8aea71798cd25ecda42face323d9f62a
BLAKE2b-256 e9d404aecfe83edacf336124bf9ab7b8e54d395fc07d79f023ed47c5f78e6b0d

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11bbc0a0fa1bf3d5ee287f687fa7f7a1f4ddce9521fd95653185b652b1f7eaee
MD5 99018772073bba5e9f9627def960a99c
BLAKE2b-256 f01987adb764000c5f5a399b82a761bb862119a192192df73f15aa24f7dc4af1

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 772b962e59025f19db96cadcfded538eed79d3e271a72395fea9d2f38bd8cd19
MD5 200c07292da25fcb96baf87eae0198a8
BLAKE2b-256 92ae8d8241ab0fa35f1aaf030d260ac519901008c819ef7c67076fe8a4e24589

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a475b68eafdcd26c53b3f90a2ce3610c17236bd10a1443f810c18ef72b8f2002
MD5 488d67175cef806c30242b948e6a3623
BLAKE2b-256 017205ccb3e83fc5af9f0c6ebcffb44ee5351891ffc1aff12e3609ac85873202

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf7c12be4b2555825eb65b78f7a55b782b2c05e4e7eee300538b62dd9f92764e
MD5 3f698621d06b773ec0e75651c3444350
BLAKE2b-256 7867462794a9a5b09934c385710a57db3d6828fbd7caa3defebcb8cee337b510

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 073caa58406ce4ca69bc1c6f61947f228f017d65d481aa8c1f7881f7f1a5f07e
MD5 fdab5cae5be6234103a5ff68e437f304
BLAKE2b-256 5302eac2d828fda4df5ba048b04323de41fba9b8a6f3b5dedffb982f8ef17cdb

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f0da716aa74560e693dc2e6d40d8d4b39670fa57b35b03f56e0e18d43e6f3c17
MD5 5ab6e29133e96394de92d909bf64c909
BLAKE2b-256 fa58426371dd38c063ae8199c45b14f201217f9ca70108f5c831a78b34f3914b

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0b1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0b1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 343302c0fdde62921dcd8cdc424c8224dfdad398a5e9999645992159249bd2c6
MD5 5d6e2f98c04d8222bd4108e0ab00470d
BLAKE2b-256 f8ecd2c34b24243168884332f3862116c77db69c1b4cb91f28daf3d951cafe00

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