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.0a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

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

pyenvector-1.4.0a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.7 MB view details)

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

pyenvector-1.4.0a1-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.0a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

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

pyenvector-1.4.0a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.7 MB view details)

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

pyenvector-1.4.0a1-cp312-cp312-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.0a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

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

pyenvector-1.4.0a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.7 MB view details)

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

pyenvector-1.4.0a1-cp311-cp311-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.0a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

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

pyenvector-1.4.0a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.7 MB view details)

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

pyenvector-1.4.0a1-cp310-cp310-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.0a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

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

pyenvector-1.4.0a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.7 MB view details)

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

pyenvector-1.4.0a1-cp39-cp39-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.0a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ffdf1f379e3dc361f779f96d7909baa137b1716c9f31ad13debf580b79ca787
MD5 07e9ac8e1d6ab8fca299714b8cc7154a
BLAKE2b-256 8f3a33ea30da6d2bbca754e2d31996e0ff62da058d6fb17904e0904f183600e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 288e19e33cdd0f0f3fc1055b0071949e1f14e45e61d9de36f9a2aec53d8defbd
MD5 5fe930f58461ed28b831a4f16aa0d72c
BLAKE2b-256 dd2259d7e501d38f47d66aed4c816375348edb1b9b5d33b4a2046b7a32a60796

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4be1295d2d746b0ed2ba98488e338e045e5d8cda49a397ea6527d79a3f283c1
MD5 78b6b620e94145a93fe138123d2644dc
BLAKE2b-256 dbf4a734e2a5be8e61e99bf2502a9538bca38bf4dbb29b175db4109ea3ea09e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 179135b0c1cc9b4af1b5f746340c4419a7ebcd034d5ddb7279024eee45ebf455
MD5 b37f83be7cb6742002e0cd9113a001f4
BLAKE2b-256 6732070ec5071fa23c0551a79863176954667b522066fa7d513f5d8ad41fe62b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6267277a263098070e94710aa964cfcfc02ef51b7b8f5c86eae7335c890ea43e
MD5 8255e52e9d98ded1257fcc85171a0abb
BLAKE2b-256 65ff22ce018abef3c34d2707cecacf0317b3889dcf51383496c23a353c239793

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d754ce831afe059502408d4cc9723d2ef1f5027da0e5669889d54e023a37bcfb
MD5 72b8c08941220730a233adda905531b8
BLAKE2b-256 8c98a23d82519029b4533c48afa7c8c3795d1154491a9c0a08f4b2a22646577e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 51983caa5058bd2cac41247fd5ce6e828d558fe90ab4649725bbfa1ae64d8bc1
MD5 6a930bc40a42df85aad7a6b1cac99147
BLAKE2b-256 38b7504a2a8fc630fc8b25efa668ed1a950b1663b7423be101017296c1a26597

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a32d89cf51555b40d193a86abe4b039388f6d534dbfdd32d1856b1d46a8f2b12
MD5 2590670d482a4708d09721fb58265411
BLAKE2b-256 b011c2471cb44028238649c8222f4e5b647ab6cd5bcfdb8462b193db35c08b57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4785644dd882e31f8a9507c1d0996b05cd2b92cc98f5ff75ed1aac214c461e54
MD5 be9e7b5f43aeded42853897225426c36
BLAKE2b-256 24b2d308512277858e32667dcb58f188ea9117c12097a9c67254984aab5df10b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 82601a57f7ec91658781d06fd1e35dd8bdbf9907b7deefc2fb0df7910f3cb99d
MD5 2e67e1a1ac542d6b995aa97d2ca89282
BLAKE2b-256 83e59a6d23eed54fc47e8e5539ff033021661b9f3ff3f176a899b17b3ef95e0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 16180a35b9c32c175875e9e932dae4877bfb219ee243e51779ec41d265e33d0a
MD5 2a81e287a02ecdb99850b4ec14ea7337
BLAKE2b-256 6f254f71e46605ccac00d8ed44d37671ae8d066d4ba1050035dda3738f25136f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bea1fb4618ff6a827a2d383eb28ba903633c0ffbfcd597679a3769bb4777239a
MD5 138792001a1f65b23ef7c79602091bbd
BLAKE2b-256 db0e137b487b3cb36cae4f471e518357bb6fdaeae03881ab338d0e5a668654a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d61dca0febda71cb280f68eb435e6aa1c292f47c8e47a332e767333daf660c49
MD5 b033f2119b057094faef4a3054d8912c
BLAKE2b-256 34244667c3153e96c369af64282ac8bd68d005e9684f5a422fe53615b9b7b118

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb2ba69072129ff047baaa766f1c975d0648212f64b664f6e5fc4d73fa78eda2
MD5 a8e2998f54dd0f83319c5d6dced12d5c
BLAKE2b-256 c7c2824ff74fab6df96adc7ebf42319a884d9f9e2fee4db704ec172dccc446fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9134945e4b682599860fdd4ef9960698767daa61da1d7b19f6988fe19e3a192f
MD5 aff62ea2d3d54d2809ab1ac451699be4
BLAKE2b-256 2759fc162a815152d1f38012c2bc2f494d3b841ce198263b5d6d017a3fa8b748

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