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

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

pyenvector-1.5.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.2 MB view details)

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

pyenvector-1.5.0-cp313-cp313-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.9 MB view details)

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

pyenvector-1.5.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.2 MB view details)

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

pyenvector-1.5.0-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.9 MB view details)

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

pyenvector-1.5.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.1 MB view details)

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

pyenvector-1.5.0-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.9 MB view details)

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

pyenvector-1.5.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.1 MB view details)

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

pyenvector-1.5.0-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.5.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.9 MB view details)

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

pyenvector-1.5.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.1 MB view details)

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

pyenvector-1.5.0-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c7c4a3ab9f61e4fe61a9e3cfd178ac88d1904cea0b5bf5400a14ce0598f42bf6
MD5 4097aae4c2c4ecddc0ac892f91d64ba9
BLAKE2b-256 a256e1b847326f1b4dd21d867e5700c5af97b0fd1a6bd360e4ca7543456ba5d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f2aa4543e6f195e88e10e669dd7d5ab8728ebdf52b7cbbe8cd2bc76e3a86e5ce
MD5 6dcc155c6e880f385bb035a6c04f8766
BLAKE2b-256 a00fffab48d48e4006e3e41cf047c878954e7ecee79dd62f50223c588629ab9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e11cacb52191167684fa60533f612754f5c6f334c01f77794df4069456a5cf9b
MD5 dbeca30b2724b79e904091384ffa54f2
BLAKE2b-256 37bcbca842dd1fe832e3262c989d43a66d9597b908fc0acdfe9ae51bb707510f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf039a8cf0424145495fea76910cf3fb886ab40abf0d41ecaee3ceb2689def03
MD5 bfdfd8d8e175adfc9fd14a7e48c81159
BLAKE2b-256 f065693a1cfba875e8e501efe7255ecf3e646b7d9c721322562ce2e9fcb3d7e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ff0e5367897193f5a9630239f3dac67f63540369ce1fabab2f361bfe801e89df
MD5 f5b5b8ee050c16d7c32f855f5f5605d4
BLAKE2b-256 9870447c6add662a777a97cdd165b7da7e4e623208b6ddaa3bb7383d27f779eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3a1fc9e83db0781da867c3c6f6c93ac123fa821a237c01dfeddcc5d850dbaa1
MD5 0139cd8df8b170a213abae3c496cfcc0
BLAKE2b-256 0d688b1e6cd8309921c0f4559c0a0ee42c7927f1771f5a96791de70610547eba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be7ac8f9c61d4f00ed7110cad9b34077d4651bfd57bb78024944dbb76bd01ac7
MD5 e5fa56adad6cdd137b6c3defb6778c1c
BLAKE2b-256 fe45ed51ba9839f6df17e56624f455f9e4b3ce1d0a484c17955419f6612c1387

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4f1671eb36147e2faa8fd164eb5a4fe979be00fc95fa33925f4bf76a4fe5c128
MD5 3fcd4c315869f48673e42ba4c442bbfa
BLAKE2b-256 7293e11c535ef5d53d1ffd18077df7707a34112a43c0942ba9909d61136fb2ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6fd73fb0e3d1a0075e97d3ede783caf3c5e6a97700f8a25bd18bd9689ba2597c
MD5 e5af9439e962a2e7fab87ebece38c8a8
BLAKE2b-256 4112baea5e09cad81785fe20c4da28608c4a1a707868b93a320be414972c2b0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2fac7c87c2248a7ac0dab8f3e9c88cac959ffce48b05e26602b2891bd75f03f4
MD5 71d941ed9fe23bc88d7553c1f0057681
BLAKE2b-256 851b4b82554ecbd3461d9c8911ccf26c586655ba8d03f9d67dcbdc646fb39f50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 22c27f872dd8dfb9c542faf1c866cd2e19217f8d0212c8f2edaf94bfffa81663
MD5 9b192de71b22099eaffe6d46c564dd25
BLAKE2b-256 038161f9ca1b9631f693a107e040c40ee53e785399153f78b50c1597b9ad6382

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 efc124aeef2fb3d6df806640bbe4d1da0ef33c1e5217690c4e2a0ae420018c7c
MD5 1dbd7074d699cc97f2748e3c2aa0de15
BLAKE2b-256 14e51c984f22f1fc7af5b17f7155e26759ac07206bb0df842b97b6a27e32d244

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a508de65ed85d154c477dc4228096ef85259d2e76543d43d292e89f4321da9b9
MD5 b74c4730a541a67697b43d908d353104
BLAKE2b-256 6f0c5bc7e1f89b962f33db865943675ccb15fa1f7ca1ac416ad60033f06f7fcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ed5e1c7b054f9626919f213b043728624fe369948e26cd2b10011423223a9620
MD5 5f52758635edf82c5d7060f7b526ca39
BLAKE2b-256 af7c2834e746fa2ee50ef20ee3a4102ac59f8921f7089de1c3f8b967d4cc6d07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de7a201aee17e250b742ab41c34044c12911df43f42100ca5707c27f4d36043e
MD5 dbc871c570e824ba1814ae31c5dfe1bd
BLAKE2b-256 1bb6df71eeebb98203db1d68fc183f9036054706b799608f15f134784c002ff2

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