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.2a3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.2a3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a3-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.2a3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.2a3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a3-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.2a3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.2a3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a3-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.2a3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.2a3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a3-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.2a3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.2a3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fafbb2d8d829d1b783bc124fd84ddd4877968ad7ef9c1dc881bc18c8d5f9e7a2
MD5 0457064220ec893f9303401123e9b913
BLAKE2b-256 3a44dd072303241d5bad8b10f49d11c86d212d18d149879b3da6d31faca52e1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7d33f1ee3cc4d1ee1efa5facea4c53c77a9f542665d6f03a18be9872bdb2d70f
MD5 e581bb70001fae9a755025fddf7540eb
BLAKE2b-256 19435cde2188b34dc5609cb9bd6ef2167b5b79e9601aaeac58d1dabd1d79b0e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03527f8436ba68b27511d46a3a30f6bea1ec91bd95ef84bc0a7e9b95e38362c3
MD5 d058fb426542545106ad616f0abb1e6b
BLAKE2b-256 91efcadd9508846763ab91f27659017b30448aff5bfbe8e77a73da8d6359d6f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3e63cfca1552cbaf0749c83bc3a49faa4c4cb0e044e42180c851bd97c824cc41
MD5 6928d51ef9b922388311216316e306c8
BLAKE2b-256 79bbe3a0bb77dad9c6af419d636d362bc849d5b74dcefd9394cf5f1a1d06ef3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9e826697113d74ce2887e35c130c3ecb2413f5fdf3d4203cfe2d9b12248eb88e
MD5 ef813030a089de3fe108853febaacb6b
BLAKE2b-256 9b23ef1104107f0882815792dcb8477f2972112a14d750ce19e03a480103491c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d3c52b1f87b00542c7d02c892fb37091e63c8203902a253698b3872372f669ca
MD5 0cc0969166e124fd1a8e336037a48ed5
BLAKE2b-256 22636194b4415fc44d323c1f75a1890eb52b32d76c93df21b990cdaf95793a80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec39c57a5fc31db4d80a160f5dfebdb767172897247d6a222b2208a5cfcad2ad
MD5 32214cc8f82f809e59b096c396c850ba
BLAKE2b-256 27774f097d302eecd509b7baacdde87c7224e8b583526948498446dc5e214219

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 67d7e80ec07bf33a07a1927a6d2680fa3df29d8ba15724e067b4ae8803092870
MD5 d22656ee82b36fae52efc16b8f70f784
BLAKE2b-256 815bae07d908ebbf53a8f3ecb6421886429545747db4148934b12c316e011901

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e5b5170c7419f91bdad237b2d225486dfefdcac34f0841c41f8652babe493d1
MD5 a0a8dd9c087f95cac530c381dde136a5
BLAKE2b-256 87bb47e0549dae1542df5d04bb2312cb9268dcf775e9e9957e1dae5bd0263b75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8c8e4467d70f30dc0d8315ff492691bd9d9538178bfde8fb7b6d141801bc67e2
MD5 dfaee771d0df56301ed62deaa129d48b
BLAKE2b-256 61fa2a42f708f65bcb639cb804af0426a6e44a694186008119af50daba6d21e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 31dbb7bbf73a6931957634937444834ff01332ada73700cfa720b96c7ac19b3a
MD5 7fb3de797fe93b6e29f4ff88c167245b
BLAKE2b-256 8720d4e46363f788439b9c5f301facd46b34402a5ede23d3726fec29310bbd25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec854255411d25a06deddc77f4f7c44432daff0418ad79ec69d25a54504f895e
MD5 f188327d04e863f9c633b5da9f2d4b79
BLAKE2b-256 c236ef6e37a51e422f7b9a838ee43f73d05d727a01813b58fc78171251ee4778

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dbb58c2b3cf2a0e3d03040a05425e8ddbacafa9fae616c7cd858ba33e4a0a828
MD5 510647be6d48a851d30794df3c2c68e6
BLAKE2b-256 f33f36edacdd70810ad75303165a5a95f1080f9a15eb06d22c58b8711238ecb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4ab25f62cff4e08429b50553a8614d3c5d974bc234a0b95eb992c78eb800f797
MD5 272f826eaf80bcce0a595a7c99b7711e
BLAKE2b-256 d096761a3f484d1c7ea137cfb3d7544915a6f42c57fef8b9e211724ca7cd83be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2a3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1cad13f8e09a856e5754b01142f347af688255469a7349de77275eb0b5879281
MD5 c3f27d03c8b62c957d17ac996d269dd9
BLAKE2b-256 6ab1f44d9b06aced307ba4cb014017e3091fe65faeefec92b77bd4163534aa18

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