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.0a10-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.0a10-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.0a10-cp313-cp313-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.0a10-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.0a10-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.0a10-cp312-cp312-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.0a10-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.0a10-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.0a10-cp311-cp311-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.0a10-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.0a10-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.0a10-cp310-cp310-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.0a10-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.0a10-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.0a10-cp39-cp39-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 89b8bd3b332aad672cbe57c1ef700bfdbd21cafda15a0aa414685dc0cd5fce7b
MD5 762f585ec2d6adfc2dd2a6ad8af7122f
BLAKE2b-256 923381efc3a1fc676f40e288ffd393948700e0fb49fc260c5662d024d89ffa26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4516f37a50996b0deaee1aff73d64232a4eb0dd7c9309b602bc7ccc416b111ac
MD5 b57eb8430d0946bbcc9009e3c2ebc0df
BLAKE2b-256 7d74209e3cfd655d9c5d6732795334eb0634ab3dcbfef03bedb5300b1390a400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2233906e89d4d5d7a025403396019bb93a7ac864f01835e0bea4d6d1f91daf3
MD5 6892e320a88e7b02da792ac41dacd8ca
BLAKE2b-256 5b60b6940a020689eafe8b4dc890a1e8c8cacec7126360b4c7c379a5859d12cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5f5118f7768fd9001707afa8421d41c736e0321320436535314a2a3c98fa1d2c
MD5 0bfc20201836fa548a6144b17a75242b
BLAKE2b-256 a48fb6a7e52eab9759a92166c449dff3a90b1dde591b3a41ada249d50da915c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 81255b2d2e4f78fe189ca4ae2be9b18237ebefba4ba5528054a2c7e9add755ee
MD5 a205a1c33fd8024e62eb992ee6b862d7
BLAKE2b-256 c9bb677a851f3720ee33160f5797c92ff04fddea785e90378be3613d85892c7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 116446a6112be69010c9bf5be3fe3c55133dc6bddc744e1991b0d3e50d352c75
MD5 3482a797ad059ce3b636ce14b19e4bb1
BLAKE2b-256 a051723894ac6a1b655f9fda90f8d1f6dcdda0afb1be87f8d0ab94826bc1b6b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 734711baf0ce0d5889ad5d1d9441c1a871e1701d95dc445b62220dfd914e7536
MD5 4333af6ab1f4ec34d70d13907a7b127e
BLAKE2b-256 576da09217a5df0ae67bed7e2bda0877d1abaecbf8025ee96bad1238f6ffd0c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 93dca02e7ba110f9bd7e3efdb45c434e6a0e9a4bf2f025f09c90f43245f5e27e
MD5 4bffd33e72704ba992b53de1a00fa1a5
BLAKE2b-256 9d2022ef9ba1f62bc5c1fdf5539039211457c94eaa6fa3d844d7eb498aa32b44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f7b03143a97d9ad964fec4549406082581743400197743b0d31c9756f371fda
MD5 8a0f90c37b6368c42c40e17c33f6efff
BLAKE2b-256 fe6c15b252d24935f7403ecb24e2b400a4d441bd0ba867dff24e5b59126edb89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b46dfbcdef9e6367c2120d9500e0fe950f6cdf5c53e234c1bbf319fe9af7b43e
MD5 1d984e2a060f281395dcc681586406aa
BLAKE2b-256 e30a45d1afb92568f38da7339a775c9210c836dbfe98b0c1165158a265b8017b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ea8f48e7197a25a244a844f16aaff4f1edd5016c37094bafaf28db260ac70523
MD5 a9b70503ecdf6fe3867709eabd318ff8
BLAKE2b-256 bdb7016e3d5cede5b5b217a5f827c96691c6b3167a60ee15be9cf9059e6cba10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37d3e1d75b6feff554339105dc8bd0abb8ee9555c63b33900c4291baef660bf4
MD5 34321ec623f941afcd6af1443c7dd3ab
BLAKE2b-256 68d88b970398592bd65b7bbdebeaa58fc86c7c221add970fc037fe972edc9429

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8007ba823bd418e6c8c85a2242c82afc8f6969795afb1dfd70288baae8d4eb1f
MD5 c615c1bbf88798ace32343426d5eced4
BLAKE2b-256 a89f991577a1363c8ccdff9f6946048a7973427fc6d8acf311e532d926461f53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fe0e12f526f15df433ef8b55d92ff6bc36bad2bf6fa6e3c92dda8930f8b7ed31
MD5 0704608b8ffeee2e836e503193154817
BLAKE2b-256 84b35331cb76614cdb36a387710a4484ed962ada521a1a4286efcc58ddbe717c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a10-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d674adbe7c162f7b60bda2d3dbef38c1196d06526207c9781354c71f0a9ac58e
MD5 e85925b29fb76968ce03d3d1b1df9370
BLAKE2b-256 3752480db8d99b5c1b14157b0bd5cd8e346d6a2169bcd1c43b7e5f42c24b58db

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