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.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.5-cp313-cp313-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.5-cp312-cp312-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.5-cp311-cp311-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.5-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.5-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.5-cp39-cp39-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 260370ca6e0579f91cfb6b6722646be08eee4f73571a9cd13a6f546b33f5217e
MD5 2458d50d20af6779ffdf94feef9a3223
BLAKE2b-256 4e16336a79eff48da3349210f5532e64f2532d31f6475d467b6b365dc17f5bd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ff1618b3275c2663762e56b722da8931eccf51eedfd1c73719d020aee3618f77
MD5 738958d5a290af589df45fc4c31a63f8
BLAKE2b-256 9d6023e5efa32579adef84790c1969000893a812dfdfbd3fa299c81f30557ce4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd18a448434004404acff824334d58c8578488435efb568fbb8a8d10ff1403d4
MD5 83e98e00e67f2644f7ffbaa3e2bf0815
BLAKE2b-256 cbe963d594402c4c9b42e971f96549fd37976e3f04a9dc3cc3d5ed16bd0bbd03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b25a1a9bdb1d860159d6e2ea3d7216b3cc656adb0e8c4dd4d27a4b02ec5928ac
MD5 16ed26068ef99e0d1c9dd3e94cff15ad
BLAKE2b-256 0b1ca8afceab2f57692ea371450e74084e3d1d6ea81a3a6a788f46491da9bdbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 827200dfc1be7b1ba33ca6636ca6ebfaaedc35bbdb2ed956489eb152fee6db6d
MD5 e26f46e7545eca8a92ed35e98b554a9b
BLAKE2b-256 2b04d71bfc53acaaf6bc2d7a60f8ea22434bdeae25950d8daae3ae6e4d3604f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 19eaf468d6d587e009db86511e92dafcb2c5073cd4e0bcf92ccc255ca3b14578
MD5 0e2c30669d1f039b9d2d5a7da80ab14e
BLAKE2b-256 ac86a303bfed8ebc0aafe5ade6ef28d80fdea2623644c9b03a1d2df76f82ea26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 486256d1fbc61550c3a7acf0587997da64a13fcfabde730e2b2dee25c6db4da0
MD5 79dfb54f26a6f8682487f643c1f4eb95
BLAKE2b-256 e4b1a157bb604fe7259286ec7e4147e0e313fb37ec59d92cf40462866283324e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 45cd1c7d6d88c3a0165e00e6df9165b8cd12d1cc441a00fc8c26177c8ef92898
MD5 18b0a49f626219f2293b4d420041ac4a
BLAKE2b-256 19a76acd5af82ba8d55c0f5d002810d4fc72391ac881f03b51bebfcb43dea53c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c9dcf2e3b324f70184fb9a13312127cfbdfa6c7bcc2a39f246af99f8b341c68
MD5 d7eb7e8735a44279ff389c8e214b4eda
BLAKE2b-256 21b1b6968ed355a46c84630230fb35e5e87bd644c9862d7b1dbfba013551ceb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bb8d7ae683206c4b64ee92b3ec5e52947c1523388b312bba78b8dcab4dd4e6ba
MD5 69564df03bcd296d326eb852ea858403
BLAKE2b-256 5a1ba30dbed18a9c849a8842e36fae97513a6eff5cb0f7ebc6c523dfea569b77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6d7b051ad2aeedb3af66421788bea1b65ab360f9855f54317830cfa9842f127
MD5 f5c6983c22cc8a3f84b174751c68f72b
BLAKE2b-256 8c8bb35191b55adac83511e1c02da408b846e071a27ed41c8d9a3439637fcd93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ea31a7816262b64974f2163405c336f66af9fbe6c8bf154ab931e2afffbd7e4
MD5 677e914f2196af38a9a049a92359d915
BLAKE2b-256 1945e7c92cc697d7f80ad895d1b077092616ba8ea996f7504d8d030e79f80588

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b729c5e00eb01e605fe31a434a2c694c78ef9ab26930f72daa90a868e7278bae
MD5 9b8db320b40b0e0652b7dc398ad90880
BLAKE2b-256 509614da021a71618bb58bda7d5214e85cd4d2e7c575ca11b9b5a6bd113975d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7f82648c4bf10e166774d1d23431adcbe10b99d1fe024f8acd479f1cb0775942
MD5 f99f18198faca9ac50dd2e47099c685e
BLAKE2b-256 49cd40aeb42d031a87e0d95f7d22b748689e927517a6f95128bb26ef4ca3d073

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c530db86e4f043bc648a11d972b96cfcd4bd60b6d06d375f617c240a69ceca7e
MD5 3c5cff1a4f74b2eee77ce164f412f73f
BLAKE2b-256 acd85408aad52b1ba941ad4db59062219254fd8486063471c609382cdcd40247

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