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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2b632e0191cffef501cab8dfa7f1d4e9f9b40ce00b723fbd952414370fd42ac
MD5 4df20ac182f53c6241388ae75f20c448
BLAKE2b-256 3c80aaabda483fe8e7a52dca88673ab1e3c9e5e0e743f3069c3ecc34f2c5d227

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2ca609d21c36f8514416f0a26bfabe4c4afd10b28dd8adf64a1fc5d52d292fd9
MD5 b42c59f693f0b30327ceab7efc43abe5
BLAKE2b-256 1f87ab9efd32d892feb88d9f5647015b787c90f1899ff0638ed0e334fbf52f48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed80a6b9f6fd7a0344aed5c7d84fdd2a91198afa291b062eafe44e706035cc68
MD5 715f6e00b1fa8a0e5e1858294fb8ec07
BLAKE2b-256 1b88b35b155573b493ab6d20804fa4aa7b868460a10326a798627f87b0b47da9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 732271756115cda5db31d59cc60fbbf2aef23dfd7db8f4c39983bd3297e99784
MD5 9cf5f30005ec5eee682a1cbb100bff8a
BLAKE2b-256 ff214280fd00a97436b731c7f1c5c1d888f9f2acec5aa3a6e8ea63c90cb13496

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 469621ca92037df15815caf9aa509551c2279f4161d18dd7502274547bbd22b5
MD5 7450f5c4112ef767e387439bf45deed2
BLAKE2b-256 bc95c02fea2d0f1411f1b99d34a13ec63bdc6170f9aca1c098740e79e6915632

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d44a9ab4a8e0e293889c7661b6d5108a3c0c544decc10c56c70de82cef38b1a8
MD5 13abe92ab099cc0ffd05eb708dab9d4a
BLAKE2b-256 fec0981e7a94c3bff48ee9a12e7c0b2d81e3c8634b8ad18a87bfba47f1e51aad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bca38af7f4a9450f6dd672c83916e3779f71589df5810ff5a049511a4b163079
MD5 963217ddd306162e0aea21af076c8865
BLAKE2b-256 200b3cd4b2aafa4ec20fb8d81c15b749250cd50d4644583163f253455668e1fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cbf8d48447c76a2d18a1c3cbda14b2b89da3eff6c6725c117d125e6d8c05285e
MD5 a293298acceb70e6952854cd72dd2bcb
BLAKE2b-256 2cdd2c1a652e3e56318eb940a2f12dfe2e3cb36355c1545e30552258b8c94834

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee8b99dcea9e0a7f39121f55a38cb4d9407b921cfe22b2714d81b31b358802d7
MD5 ae01093756666f1ceef183e251d6cf3e
BLAKE2b-256 165bbc5b934be3f72ed9a758fa0abd528acba6c205639a851e3b3d11e96047d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37b8460abb2ca5f120c341725c832036e01965cdacecfb9e7b604da078bb9209
MD5 ea62a5b92cc3922566aa9cfbd363a279
BLAKE2b-256 9636e564e30cefc20bdbe5cdcdb8863a2c9669b99408bceb54f589f7a12e1877

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e85d4de62e394e206af637d661c82e6665a742bfa1ddf1145c962e78bcb3d3d9
MD5 b8c7b67e6455375ac5efdc0d4a8f9767
BLAKE2b-256 dd6f295b1842235ba36b4d98c158386546c773ac78c09a2e0ef6cb5c8f38d309

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e3b649a4a2d838b501b609f0a1eda61aefffc9d834d0fca2300dd84ee8bd18ee
MD5 5468004f33015e5b62fcf718f025b936
BLAKE2b-256 2e2757bb45ac5346941a1357a8f7d992afc5d223d29a3e020303dfcab0a30003

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 17cbb5f0be7fe0a4527a6c4979e17416a5e134edc57597913fa67076123694da
MD5 ba91b338a7b5a7de543ee9ae0b4bcb3d
BLAKE2b-256 c5ed354b89b72fbce31810e14a2dc21b2e17e7ca62a70da56e9433705218a0b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5d0c9d455f72b3134af78a2c0e4974a3e16571320447248ceceeed9c01d2cef3
MD5 0c7e2a07e80ef38941245b78f48e2d65
BLAKE2b-256 f62d2ac9b0676d9ed3069cb1303fd1b5e4107ff181d4b182baedc3e1dd883d84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0bf04c8ee72abd88c488087b5717c5e88ea49b50a78dcbb24e5146828ae8f9f6
MD5 1282b2d57864be4e3c22fd3c3161d392
BLAKE2b-256 9b555d87244840450f516e8d7b11fb0c80211ae2642fbf7e442d5abc71bd98d8

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