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

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

pyenvector-1.4.7a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

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

pyenvector-1.4.7a1-cp313-cp313-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.7a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.7 MB view details)

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

pyenvector-1.4.7a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

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

pyenvector-1.4.7a1-cp312-cp312-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.7a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.7 MB view details)

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

pyenvector-1.4.7a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

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

pyenvector-1.4.7a1-cp311-cp311-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.7a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

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

pyenvector-1.4.7a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

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

pyenvector-1.4.7a1-cp310-cp310-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.7a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

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

pyenvector-1.4.7a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

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

pyenvector-1.4.7a1-cp39-cp39-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.7a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e27bcbc6791ff1ad257f80c0f941a3b6592333685b5c00f6e8146b5bcabaf8f0
MD5 6789429e871301769f1ce4b0fd08767e
BLAKE2b-256 528c7f901ee56442a6fc940195f9fcf57a5b97685bb12cbd1ea492cc905dfc30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 751c4a54d2edf7ae945d1d62f94c45c0e8b87168eb53c7c3930142b8810a3b29
MD5 8b4fae8f41ef64f1f77ebd1b839ff2b2
BLAKE2b-256 765262dfce60f326afb6583f39e4368b3168d50936e22ebf39db5c335ca8eff5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b7b0fb45b34de9cb7a8d1241ae9c195da64303d0399afcf1217712050d3ac8e
MD5 d531d340f700b7271ba90bdc56266095
BLAKE2b-256 ef9f5939ecc954764a69cfd85b50a80927457e38b59b9941a4d211e4d33d1c84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3cf8014473d10971c6756d1d8c9c149e2d3a8d39946ccd0c66a3051a740b6bb2
MD5 5d27b060c2522d4cf04796c52ded5ff1
BLAKE2b-256 7a7e8933e38b21b808f8c113a6a6c51184206bda22f6aac4e098009aeed812c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ef693352688422b2fc1df191bac2cb8bece66e70b128d0cc672993bf53410355
MD5 11d25cb1c9c03f2c7102c9243183cd16
BLAKE2b-256 694c266883a723ae792c5040b3645ad11a54652c7b32adc2ee5f7fbe73cce4b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b021818c37a1eadac1eeeed7851e2075ccf1aa41cfde81321a2247ef92d8763
MD5 9da50d9b93a15fd265a0f388c6c82f65
BLAKE2b-256 3b0236416d03a7c3c2d75736cf3885038784984b9fcbef94f2dd35e754c6f16b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 724060fddeaf232862f4fc1084028c7999b2a8b9b34533329eba657f4113298d
MD5 f102ec1970ee3941a628d382edd36439
BLAKE2b-256 f053ffb5c55d23c66750ee2c6ac8a8e1855f4affafb8ab61cdd834b1d08ceb57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a77d81c78e22c1c074e5af284fdab5f9cb1bb852746a84cc03bde395880c3e9b
MD5 f2924659b61e35f31d622a9490ba8d82
BLAKE2b-256 08d28c71c6b4b3f57b129e0629411c12fa156552576d6abbd5664ad346d9df25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24d3fdb9de0a4cb92866dd5cbb5127a855358eb2c02ae531b7eb320e5acd6521
MD5 39a40b31ece8338e2f014113965aea60
BLAKE2b-256 c6572abf6f2d9d1e3e563f932f3362336695eef8d253aea36b5e8680dc819f17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d6998e223c3d010b1174e0e8b63eca1c957cf3ee9e0b8c49cefca179a0a919a
MD5 2461e140d0561add788592709213bbf3
BLAKE2b-256 280d3badedecc202786ef27947fb56bfc5db99535e8a168f299a9c5691af98e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b0f7514b404c30d2223a177117343259a98ff2024f836167341d62599f7e116d
MD5 291aea03cdceb876a10352bc010a9f2c
BLAKE2b-256 ddd73b2f4c345743a0b2af76331c95ad7f906ffaa079ebb473221ffca85e21ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 718ccee9428846ad00c387f837a47459576abdad421d0f642b2df1d2b599d2c7
MD5 2703c9fe2819432ed68333b612256c23
BLAKE2b-256 8bf869e21cab0701df72e5c00d9c62a9ced036d58eb0b239896f744b1c63479d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3305c7408c26578c949453a05ea6ea96f1556a3618bc81eca6c93345b2de1a8
MD5 be6dc04d2d151052a4403386f5d4064e
BLAKE2b-256 ebdffa57415ad68d16cdfbb41fe23d4e0b1110a37544f1808b78abc5b2df96d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9358d529a084f672ae59424795bbdff6e678f13c19a5bfcfff8a6b57a9dd74a9
MD5 bd1b71b5f294afbac64e8d95bbcc2f0b
BLAKE2b-256 0ce7bb1c86b30b21c45691eca119208d3b280fe8511da5a7a80faee2e16c320d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 570d5a3db89395b4f146f5a973bef5e7ebf63c47d43dcff25f7fc62964c1bc8b
MD5 582cd6a69683b01c6f15b90ceced7f37
BLAKE2b-256 e0706cf087163ffb63fbc5e2127ee9b8ab868f7b954ad456ca71b9ff23f633ab

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