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.4a1-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.4a1-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.4a1-cp313-cp313-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.4a1-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.4a1-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.4a1-cp312-cp312-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.4a1-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.4a1-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.4a1-cp311-cp311-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.4a1-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.4a1-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.4a1-cp310-cp310-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.4a1-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.4a1-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.4a1-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.4a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 26565ecd9091e8f6f55baa38d655f9c104bdfa4d60ec5dbcb83b70d13494f176
MD5 f8f377d7b0cf4ce2a1b45e9780272a0e
BLAKE2b-256 dd31bf60512502cbf49cd7b4b19ddf914e58f0a5cd052aec32d1c099e4364a06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bd08416a4a3264d5486436e9b2a36320fb3e336bf7a759164d6df7f291ae26b2
MD5 9dcaedbbfdc1c33e8a9258663e2ecfb5
BLAKE2b-256 2b260e8c32dbe331b43b297e9a036bc3bb36227991fd6607479c62b988c6355d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05389948d7355b583e9d71fbebe9a212aa1113929f001ff1012a63985bcdbcc7
MD5 f3c987673373416da993139d2deac30b
BLAKE2b-256 c915fd9bbbd1b13cb8b515966599b4942bba860496480ed10b7f22ccf775b879

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f00ee4641de4e2e6f1cf5f46da16e74041745839acc1ed28228746f0a3fa149f
MD5 0aecc1c2604a45e3896d6bd57928ddc3
BLAKE2b-256 228691b5edbfa0a74b52a13601664c4ea36e6235f06f2bf6f13f44fdd69e7714

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eb3c8cdcf90fbcdc99f498852f77a37e32a0176b5531395e0dcbe4042ce913ff
MD5 02d8f913e46f17743d0c9b8459613672
BLAKE2b-256 31306e9c9f37855b3576119ca76bee34512bee5e36d9d4c2c08ec5f332823301

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a395da5bfdea2eae13d24494cd4245409d4d245211fe4457f6ce65e0d4749b5
MD5 5585e60d5ecec85790a81f5320a77512
BLAKE2b-256 cfed24edd66d4adc043c90cc603c38d3c306d4dbe6cb768e5f0c13adccd33088

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 25f80ec6aa10e4ab0497372286c92ef028ff4d8b06ef3845c0a3d350ae66b0b6
MD5 439f957626c39c991523543084662dc6
BLAKE2b-256 58685c82407e2490a3990b083f1b91459b150dc1bd8cf586b2acc89c2cb352b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7939e6f83635b617ffba3d39dccbc7a1150fee1291bfb8e1eacf35744a651ce3
MD5 5937577ff5441d4e771db2439f87f9c3
BLAKE2b-256 bb3984c032dc18dd2a1909d36bd9362b5bc7b7781cf36535244aa7e5bdf113b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e49bc0697f46bf478314ba7efcc7518ae55367ff506ec21607df8ee8285c74de
MD5 544044f7aa1edc0f9bdef0ec865dad6e
BLAKE2b-256 68d68f78aac5bd24c4c276330242bb9006b8d2ae0e696d39f5e6958e27bea340

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 196cca01b728862c2d3e2ebb181dcd7ac8ee2ac4a0b1fca3cefe190d2241606a
MD5 c7e9b69826179112632b81d9db31d7fe
BLAKE2b-256 8090923a5c549ca26d67d43774d4848a5f9a0590720bc3d9e64e0582336824c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0befbf6e441bc835f903d42f8587c70d4f9d7ab645b6285ba6cf401eca6e38a6
MD5 80e65a04c78422cdf66cea36f486c1eb
BLAKE2b-256 df0cc4d6ffb564f353430ecb609172b04230ac7a6c54d9da1387de7ddb4330a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb3b65b68fe6ef85bca3198110ef4ce45443d754c2ed61e0fe702c964a644399
MD5 1ec5a9e96ac7d2468869f62d13725229
BLAKE2b-256 50c1106d6a6df57746dd75744aea6cb849cbaabb40a15f3709b079dabefb7776

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70c241f5cff83f51e03e6bcf9f5eb19bcc85b9dcd4d8a9088dd96c96445b5b31
MD5 c6cff182db39196b29ced7488e0f3d76
BLAKE2b-256 8eda5db96e1055c5cbb1d15ea3d6ea747e46bec697bb71c8d5ef368f6263d679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b4745dc5e9123c58aedc5065cb208c3e1d95b3f66f3fefc0576c7f125b92b551
MD5 58d85019d07622eb1e7de611fcf75e57
BLAKE2b-256 02c251424775c0cf57601a8beefd4b0b6a545a7fbdcb4b86b27b079a7acb3783

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.4a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e6c32138b148212f67ddf432ecd4758877aed867f5143d8500fcb10a65ef61b
MD5 81595503acf2cfcd455a9cf236ff3584
BLAKE2b-256 bc439a64cf3c5c61b02ea5343c70f0572ce9a524167636b307da8ef11f594ee5

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