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.2-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.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.2-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.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.2-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.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.2-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.2-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.2-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 954b1073b92b41e78e998ad8f8b87a81488f7f40fd806ca7ac970105b2696bd7
MD5 97942c9d90696c4f96c50e50cf7d9f66
BLAKE2b-256 568b18b2f782f57217852af494453e8f6ffb2efbf55648c033cc9e1443d96674

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1f2df4d5c43ac3edb4985bcd29e928a91a5403a432fc53ad75ed454ba717da58
MD5 757544d3811826c71cf951ad12d081bf
BLAKE2b-256 5ef36b06c7f00a8c08d530cda007119d519f61b47cfa09a7aa1ea607e2f83a9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed878eabeb71ffb42d56833013de270b68f41f56f37391b440a980135ce960be
MD5 51eb8e8475cd34573373d47df41b4fbd
BLAKE2b-256 0c258c31243a198e91296437cf2da0ba62b7dbbcf3f1ea2affd9196ae349f7d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f46b52c14deadc07d1b7fcc559cf5e136f50f1626d2d6f93e8002a12fde0b2de
MD5 343131680c885cfdfaa5ced4356936ea
BLAKE2b-256 d9b3879978d644817b0f4875a62f0654e9fd4d6196abf0f3b8be72d42a5acb06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b2286c1041c332364f08caef42a679caa9301667d91ee30e181dd45628ea99a2
MD5 aa18d8c46b5c20cda79b45021176b469
BLAKE2b-256 b6fe15345a6ff9ae98b6d1672fc67ef9037e548a6bcb8629f1b723479e3c4ba8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eed483a42e96b555a3bb05f9c5799d59f1cf911be25fcb3e2bbbc7b10e30a4dc
MD5 3680953e19b64aa7bd45befe6629ac53
BLAKE2b-256 9d08255a5a7fa1f9c9b0b5689cadd2a7ff5cd2969e65c18ddaabe030abc453d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9a52a325966ce36757eb552755649ead6151d3fd14548679a1cbd4ffbdb7b119
MD5 d4b89f685ef228eadfc0dc71c7b31fae
BLAKE2b-256 622b9ad12ec45ded0b675b8b747049ba5ede0af1d84b1c969c32209adb8b474a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 22215f6eca8dfce7ad5b7a5b0c4240b49475e6ed4ffc70005c1140d755e75597
MD5 c5997403e4823046aed1c66082e836d4
BLAKE2b-256 66928fc298e74d3b6994b396489c8119e11ad363bbe25722395e1ce7c439ae5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11f155c14e95821b11a278c4cf3da1d65d757a35f10f64b92d1c26e714d6674b
MD5 9eb1375c3d0f5ee0a6eac7017041458f
BLAKE2b-256 f4068c974526e92358bd48c466ff44b17293c5a498409f39dd64ad386240fc27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c124eb5129fcfa09ba02e154a86a4d890b06bbb729bf138ce7884f4ca3405d69
MD5 1a972cd5ce9a0adae98324303a756cd5
BLAKE2b-256 fc9ada1c3990f3ebd1b4efe6ea3ef93793a6e5c558d11ff1ef4f7e240720875e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e99c24571ae2c6f2e225961ec25a86d7a599e9cfc0398c14a614334e8c7e4de5
MD5 9ff88a7b6b89c5d6ed8345c55ea87cd7
BLAKE2b-256 8448b363e22a66973147ffa776aaaeb5527a5e04e1234e3e11145da229763a2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb3a00d6f2fa143f62a5070992da06dc58cd4920f403db6d56004a5cc4017521
MD5 5fda319b0b5ab51976e584cd57a4844b
BLAKE2b-256 0cb96828fc0ca77b071c079d8d28b450b6af28d86c859b3ed1e77a14f0007bfc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 da570673e926d89dd4d0c16f919c387c76deafd9e7ed884bf9045d5e1ac5267c
MD5 614d16a36ca64390fd753f47ed733889
BLAKE2b-256 821d15c1ba61d1dde1bde5050da16009cabc8917d7566de30f1e5b287d69f34d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b70c4339b9b562a1ca484928214db23cefa3a5ac5815b9fbd56510a2cc216e3e
MD5 a788c5c20f4332746777d9fd7112d42d
BLAKE2b-256 2580655999d61057571016aa6be77aeb6721a8515bcd18824d5c0bb609221997

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed7b0d540f5efc11e9b6dec179e0edefa4f9487bec1d81559fb851817dce22ed
MD5 38913a679cd235ccba87837cdb765a12
BLAKE2b-256 53588f1cf122aa68f322cf01b1a4ad349036225cebeb1fe5867a9e3cec52ecd4

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