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

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

pyenvector-1.4.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.4-cp313-cp313-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.4-cp312-cp312-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.4-cp311-cp311-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.4-cp310-cp310-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.4-cp39-cp39-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 31130797ce24ce2ba6db145f8453af1011fbdb77929b3a3773d9e58ceb397338
MD5 1f0eebdd72300c290f99df1842612ee9
BLAKE2b-256 a12462f9633646d41deb40444f2f20ac122d5eac4b74fed0463ef86ee339f043

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 915a837d756d0d62eac627b9c8b053f8cb61758715c2955137c2bcdabee34bdd
MD5 8808edb5417c2e6cb2028ac3beb36a14
BLAKE2b-256 ba8d5cfa6f7c5f064b375009c87e66cce9febba275ce1286f9fabee6962db779

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd00c2817606cb8d36c4d1075d7ff35ea27bd016d72b0bb32cdb6efacce07562
MD5 0fc391f57ff91e0be177125d4efa694e
BLAKE2b-256 0b50ab4eda6a88d74115e89e4f2db55c4d5758f7a1a2e9dc6ce286c1fcbbc6e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6eff168f9a002fe0a3e04b0e39577ac66e69f6d6c1d5ed3628e7340d93f7f27
MD5 49b27331f964a340ed79c554aad389c9
BLAKE2b-256 7b02e83e374153c1920f65d506644a54e75d20a4542ea99035b3faa95ee70132

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b94a385e1f180ae6c2071ee0359d56f2e6d2a7f48a271ee659f8a912f2a07c41
MD5 9b9288929ae295cf6833bf04a4a3b413
BLAKE2b-256 181b43c654357919643611129df883bc291fc90de749565ab7574d08325d7c2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 703f752b2b334bf98d113a730b260ffdac3a2439ee69d657e75306ddb00a16dc
MD5 c92b8676e4e4e42f30cd21329be65fa7
BLAKE2b-256 788b12d1be3e5fd9fb3c5cd89c95be59e9c935df5d20cadbb17f7d34a91bc712

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e0ddbebc710fa2809a982b82e4a43d7104141a670c2c6aa1102fca388a5bdbae
MD5 a160fa0c42aa17e6136a9b12063fe64b
BLAKE2b-256 353d435314c959064a182cb8590661be4cabb7d8bc940db5e8a911bbf63bfc5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f1ede905de34671fead1ea08de6db0798026c24daa91b0f5a6c2dcff4b1908bc
MD5 43bb42e06490c37d0b94798966c7d644
BLAKE2b-256 5a3a3100551cf7be6c699f4b84b69e4b843d4e34a05138f241a4127eb88d465d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1092d6d2c72f4e8f1ced2e44007ddcdf9525687aa94e42e12d343bedfe03c72
MD5 63e2623827003dcc15d6554323d9b7f5
BLAKE2b-256 325a95007914b800ed3a9cb7166584d8b93356ff23ec2f91804b7eddc123309b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 788c79a9095e985b8d80460b38e08e5140b6800139c6a5ff80204addacfee763
MD5 827dec44943a761789dd98266993b0ef
BLAKE2b-256 545101ee335aff5e38db551a14fed2398c7200e9804dd67bc2845075c6d98722

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5222cd59f4a4d8338623a75705e9367214927698cd2ea07f116587dbef666657
MD5 c13aa09dfb3f2b80ababd3e4fa3cc3db
BLAKE2b-256 a140709f77a092357368310c27cfcf514f34552fc04a5a3d77ea03650996d76b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cda8818987f15721a747b4d3d2dbc8853b67c6409d7e4f2ec4dae1f39063aaa5
MD5 3d9747b9d3db20c6581584a72e8dc312
BLAKE2b-256 d0954ee726d6740555d0587a768647421a9fc46d61b9dfaa1174a7805a900ba3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a8cc895508a2f9d6ffa5fc8cd641537f2fb3511bb515fdc08c5ef9595fc632f0
MD5 de57ecd0ddbd4dba33f43529c12ce0b8
BLAKE2b-256 4fcb2b4ea487c502aee8e25a3bc9bdceb1866ab3f3d57997df7101ba71af84e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 09eb236ba619799c45fb49860c5927d49b6528a2187b6c916f5c42e13710b3f1
MD5 8e119439b79af475d930e1e6b03e6c6e
BLAKE2b-256 628097fd2331caed1f2935628f9be2f2e7077fd0aaa82a961325353638eb66f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf34ebcf53e423220d2a3edfa3ac69a19f9567fee3cb51415e10aba0953ec7ad
MD5 c596c60aef46a3c606b1af3ae400200c
BLAKE2b-256 2687d124954c622dd7d5891f8e15571e370b2661680d852f6e8471d40d7bf0bd

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