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.0a2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (17.7 MB view details)

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

pyenvector-1.4.0a2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (16.5 MB view details)

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

pyenvector-1.4.0a2-cp313-cp313-macosx_11_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.0a2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (17.7 MB view details)

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

pyenvector-1.4.0a2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (16.5 MB view details)

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

pyenvector-1.4.0a2-cp312-cp312-macosx_11_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.0a2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (17.7 MB view details)

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

pyenvector-1.4.0a2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (16.5 MB view details)

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

pyenvector-1.4.0a2-cp311-cp311-macosx_11_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.0a2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (17.7 MB view details)

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

pyenvector-1.4.0a2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (16.5 MB view details)

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

pyenvector-1.4.0a2-cp310-cp310-macosx_11_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.0a2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (17.7 MB view details)

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

pyenvector-1.4.0a2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (16.5 MB view details)

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

pyenvector-1.4.0a2-cp39-cp39-macosx_11_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.0a2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9a40142186acb5f60618f828e609dff7cc1a32749488490e761048410462e8ff
MD5 c37ab0a475b18dff82652a94c4ac4cf0
BLAKE2b-256 0853c705395dfd761ea62742765d886590e9f640a1ec698dbb319d916434a73e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4ce576106fe1a3fb8e1c5965b8ec74f9360be0dbcfe87b240f9a6b0c41dc1acf
MD5 de86836a8efc37812946cc857a1e7615
BLAKE2b-256 823e7efe8e1ecb07ba03314fb45be497b72db81c50ee8608e4e033b7f6c15676

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b226768e98c05a6d89f1ebf136ff4dd7f1f711d6ca9016f807d77f5cea88dea3
MD5 93033df7c9591301cc6da2b71b14d578
BLAKE2b-256 88b5efcf18d9cb3132d4bda02804f59d05c62916d22188e6082ea8c486b82c70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c28155b8261d5c87fe6a4290459182c2a829f692d1bbaf409967e1d086f4472a
MD5 ddcae5c3638b1567bc8efaf656e7a200
BLAKE2b-256 7bf3639581baf089648a913d29b67227546f451b65783f8e0bf7c56999c40139

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4521b6b2f02a01c2912ad3d52989b99714ea7f45b0a4192d41984831375a861
MD5 a5e2cce903853903f55a38b99f5a4eb9
BLAKE2b-256 a2d336a1ffa6f785defb180b88b255a170b8be916d9a75fdb20a7d3f1e195df8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1fdfae281f8eabc5928c1ca68ca69244a2b767c8cc2279ea78914d008c7dab22
MD5 5dde47ec2f63c0b0cf283648b626c9b6
BLAKE2b-256 abb998d6f9754ee3c11ad9ec7afc3279d1b9682de9fa3a2724e8888390b512d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0c633e9bbdd84fcd0a67de835d4308d4cc7429eae622053023130c455dfadc9
MD5 355c4a7d3aaf775f908129bfdc2a48b5
BLAKE2b-256 f4b95080eb962406dc756bc1b85a56d05566d85e57bbb024b2b631c73068b914

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1c6e81ece9dc69f004a6e9a0d1f87ea3fcbc8378e56605d13a4cee0902253ff6
MD5 f6e84da9c4c14af7bfaed23cf5a90eb4
BLAKE2b-256 9aac808c494215857e8d1d0b65e431ad143c7f3948466e4dffa57c9975df6f01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3d02c3705d9b5e2a8b73f0373ce2888d9fa871b73b5d34c825dd6a7061abf26e
MD5 01b15a8d46b6a2ee59f2fd1c5546133a
BLAKE2b-256 06a7829752d383db5b08ab772c546b37b5d999e812e84c7cdcd48a1cafba3271

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2cd59b5257a8cfa5adb32680783b0c51029c009be07f683d318c81c222a19f0a
MD5 d92a8d5c0d1e5d332199a93373a75a4e
BLAKE2b-256 40ed3c29cb6e601c179dffc7d21576b713c1ffa5465ff40f5762fcfa713aae23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f8620f1b92b810a4980a1dc0d3c061add902a0d79b5d22609540273446165a95
MD5 92e5fafd7f2bc5f2e2c21dce9dd18f78
BLAKE2b-256 30547446bd204146a469108c679d6352d5065970d6322a45cd80186433be6421

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0904aaff5713aca7360bbe721069ef8acaef66aab963682d899d9584cb657b28
MD5 e3c15c114a13a74754e332a25525e7f6
BLAKE2b-256 8fbad1129704f14e50d0e24d8788442fa8b113f86b68693247c1c335a4796b40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ed8ee7081698e61e422d12a738670dde89e99053150ee4a34ccc97b72b6544e
MD5 eedaa6217d45681c857d0ef2ae4ce203
BLAKE2b-256 f81fb1e7cdfaa96fd60f431e36e54806a1f326c52c841995ba101e18167b167e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1241e0428ab2acf39ff1dedbbd3e7c40ec8eb1eba07825c57dbbd62f9854dbe8
MD5 7652dfa875d45b3160218f8ff898aa19
BLAKE2b-256 c8df4fae921efcd4aa4c3047d263d23e97dc2c669e543bd7d2424c8ff524560a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02b66103b637f3cd70cf8410c6478c6e75c49387da570337ae9d3e01fb02c22f
MD5 c23659d9daecffb9ac35a809ecb825f5
BLAKE2b-256 7dac95bae56d78a383054461362a1018dfcbb13e947f670a09c750fd672b000c

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