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

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.2a1-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.2a1-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.2a1-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.2a1-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.2a1-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.2a1-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.2a1-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.2a1-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.2a1-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.2a1-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.2a1-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.2a1-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.2a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1bb7286a92380f22e0cc7827eeb9c380496f5a76bc861aaf6ae89db7dc1d7c0b
MD5 62ad243e6f57fc1792ac6b54eedc62c3
BLAKE2b-256 994b4f83ec74ad08741842ac885bd00ae5a4b0733ea40934a995534b66ee69cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 56779ee5c0410271811268adc90ccab1ec131d7b855b873f9583f8541a5d1cd8
MD5 27aa9cafe016e1f8011f23652123f7e0
BLAKE2b-256 6ad8af641919aac9213891b090452cffcfb20a5adade24f1414f55ec15841dde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 538aaa1d0ee163f2df3b5e2584df014b87a929b4639de039f0ac9673380aa2de
MD5 045d73dffe21d6bf2a4608e1d583236e
BLAKE2b-256 7e9607d94265fd91d7852bd2a67d3554d8c1eb4774864aa4c7aa648e7466f60f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd8557e707cd4e324ad924d17bc6a7ac6d1b9b25e1a92fd320ee2da266fb5b14
MD5 3b7819668332ce7afb12b5d713d7f037
BLAKE2b-256 2ee8fa9be679660e87f9e2a8c543ca977fdcdcadceab6b6fc72d7164bcd4eef8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 66454c25366c13fa5d3a9dfa017ab85286e4e969cd48ccaf91b9c0174a452f2c
MD5 18533d81703f74eb86f7548d3fed8a68
BLAKE2b-256 0ff408f1e2c5eddce2bf77ce0d108d7c583693d8a6a5f3ee8ae591b841f0a6ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a075d1038fd08606c817ea66da0a4d295fdbca8d71db291c70d16d6f66adbae5
MD5 0536d1fee8a265ec7491ab2fc4636233
BLAKE2b-256 cadf2d220b43e0cf1a9306c71b39b7c79401ee96cebb1c49f031d8c7d2049f65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2127986cf75b982e6f49d0db6dc084dbe9aabba3d7cd171b64c3966d4be7a85a
MD5 6b9934847c36f7bb4bdffec935ddd1b2
BLAKE2b-256 2eb9b74e9e472d03f9d130b8c0c6a99017b69b91700f1ecc18a4877e2a0db899

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2572352ba50a78ced0a8cf068204656e367ce78986638fd0d1c1da83c44e0070
MD5 e22eed3d3fc7137f3ac96538ee70ec08
BLAKE2b-256 64de44f58e628fec40800693c6ea7d8c5bc2a2d3276038bc310a8e34359ab7f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ca6a0f6ce12eb8a14fa2c26dd3af2a5a90e8bee9a15e6050a3c40fb567fac07
MD5 0c6c96c07e51f8f51f96ad24bebf50c5
BLAKE2b-256 5f4209561dc7a8c83ba3970bc4ba4db5fd4f639052277021d76c4ea18e28e8a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98d5d8a52561db6eb160fe34fe5f8c94e9d1aa583f0cbeb51cb84e168c55d333
MD5 df835923132af3ee1aa3feaa06eccb08
BLAKE2b-256 3449e6761d7a3fa067873769ea7bbbd02d5fd2c0a0b33ab538d0a7d964590589

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 94d315b4a5a4f2d2d90258624bddf82e861bdebd0c466f0aa7f7f26b417d7dda
MD5 42ba7119cf5821ea73379a4aaab49462
BLAKE2b-256 d760033ae32b6dd0651c06a0b58f1d33580012e01e1cb86f97cd7ba7755d8e50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8e1b815aa7dc7fd26242f936ab6ddaba9fd76348c72b72df77a912a033aeeef
MD5 29131bb02e790924ffd79dc503264dbd
BLAKE2b-256 7d1840b6cd40b55b53bbea31bbc7cb4381e81f9a01135864507c608cb14306aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6209a8153ae0e392a38a214d067fb72cdbd7ba898efb5574163873a5d74b7241
MD5 71214cdacc75b88e3fc33d0c0d9e602e
BLAKE2b-256 7059575117b13eb531885861e0d4aef07f17a767228fbb0c52f770890956f27e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 daf9fed7b80253a05ccb58f3bd0a0dd711b472f91efbf099197d699679220a9d
MD5 bbf84f0851f39c7ed4e2acecb6b702a2
BLAKE2b-256 4501f6cb6bbe772193077f386454609a5b34412d10910a6548ecd79d19bc5f01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2234bc9545e5c4e149b240669e8c40b22541db460c006951df61995427a6a24d
MD5 a2ad17ba1c1ddd5bcb6bdf37da757bf8
BLAKE2b-256 ac6665c89cf9bdf1d83f3e31bdf0a86aa6a23336d6aaef2dae8f0c4406f9bb8b

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