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

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.7a2-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.7a2-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.7a2-cp312-cp312-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.7a2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

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

pyenvector-1.4.7a2-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.7a2-cp311-cp311-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.7a2-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.7a2-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.7a2-cp310-cp310-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.7a2-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.7a2-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.7a2-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.7a2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bbcb24bdc2220c1d61eaba3e3063abd2e7b69dafbf4219f5858f32075f07d343
MD5 1143499ef592829e0502fb55d4cb7c14
BLAKE2b-256 97bb91608820258d9c440f86203c40bb9a9ae42413458891d6684866a1f760f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7f7b947fd0ba8e7a99660d57c5cc634dd081414d4ae4d8ddfda9377a10f836a0
MD5 d344b54939d32260a4f78e0b2e514454
BLAKE2b-256 96b3eeb5d5cb48d79f258e881c6f499c69d7d4f93d612c6528dad10e805b7dc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb63f190be2fb2415b95593ad2a250445dc7b3535275c9dabf90774014d598c4
MD5 4ad349ec2ab04f16392f8153b294026c
BLAKE2b-256 bab668fbd568f78c4bd16c7210242296ec78d5f8e2f22fb9d0134f8eb120b9e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7fc35e723ce02b8ffd351e0b333c82bb91ea6267e9f3ed7e5f0d661ea0571e3a
MD5 51253ef14194f8e00eff6fd5ee3034d4
BLAKE2b-256 8cbb85ea050102af071d84c515b9b2f415c836ab620d5604f984d36e35ee6df5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 13e936e0e08eed60f32981f9c4695dcf07ab6a074568c4ec4075ca9cf1806b9c
MD5 5a50e2a69be4c0d2ad8e35d37f1c2063
BLAKE2b-256 2bfa4dbba16434857b70f9aca7ed32844ca87b31ca7a4a8a9a72d0f783418f82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e896a9305ebd1421221adc8d77516f226f8a0ea55069c02526ddd751ef6cc8f9
MD5 a9c6d251e620fe44ee0749fa389e3011
BLAKE2b-256 3f43c9dd3b29b25d6257d217cbfe4f751314f22b48a7fa3059978496589e6101

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1a076b1e0fcf4c1e4bd5b909f4a5e55426c07c730bae97306678dd702a621a0b
MD5 80f9ed1efcff0507373aaa37b4be6a52
BLAKE2b-256 d0a6425c84e457f006cb2846d2948ff477eb6d60eb7a8e92b5e5dc284cd43236

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7bf3b6c42f7361eae2ae9bc862d38eca050a8e92cc0bd1652f6bb35abc6256b3
MD5 41d6ea36b904e18b7bfaa98bb6f9fc39
BLAKE2b-256 d2970d1b58967ff7116a72c1d536a3fbd2a170839f1bd1d2d22142dd1c875cc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f385d739762e189a0ec4b24e2ea6b85a98d085e9750fc59e9a275fc969bb883d
MD5 dc17dcf3cb63388e20c3dc24449af166
BLAKE2b-256 46a5b7760b0d9652a68a9484c961ef2c631d8caa2c792c4dd353520f348fc482

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0bfb3ba5ef17a72504310efe87ae8eeb866d3961d53463e153f4fe3a951b95ce
MD5 3810000d07e27079b265897aaff18fff
BLAKE2b-256 1aea0df5d4c24c3993c44feac2eb13f1a1dcee6720f64503b7bbc753aa2d2d86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ccd76edb913ba8b0312fa398b494c16cf106f234c6b5ff97586bc4841e65d1e4
MD5 97667dc29fc12895b0e666fa409e07ee
BLAKE2b-256 aba24489037c84c1f679fa0fadbcb77d57a1028655d7e933c8c84376982a616d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3211929588dfd414dbd91b501c1de4daac39733ab28e6d178d7b45e82d91fa08
MD5 63002e6c96dd42d7b0206a5d21faa815
BLAKE2b-256 59a7694a58bc2ac1fdbe39115364c15910a5a5c9a6da722826a02b85e220388c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef53f981ee89b1059a1a9de804f8289cb06a06a8b6714d472f74722d9aa72279
MD5 564dd61fab93ff5f45b9fb9165735504
BLAKE2b-256 aeb9d5264ae07631b96e045aa2b41a7e414d2af9aa2f4b2f9ccc30eb26f87ae8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f9e633d29c9dc87219ca4fa44d2b20e480137163d0cdc6e0fcdca77a0b211f09
MD5 2f7a96905fac88ad85ad4b7076577a1b
BLAKE2b-256 6abbe997f0c1513379ae74b4519376c124fb723789cbbc0fbf5081f3e4a946f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.7a2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73e445d1f92295fdb5ce045b588a6d9500a6b81ed167e60d7353038eb2946329
MD5 b5b1efccf4f935051cdf14c2c2d383ca
BLAKE2b-256 c214f57a5ae42ac1e51a8ab6225bd2b31b27374dfc407633854aff8fa05bcbe4

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