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

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.3a1-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.3a1-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.3a1-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.3a1-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.3a1-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.3a1-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.3a1-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.3a1-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.3a1-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.3a1-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.3a1-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.3a1-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.3a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20180aa26dd30d9ef33245aef5700b8057fbe7ca341b51694a925931ed5bb60b
MD5 3c93f9ee6b30f5c48e60b55a1cb9e5e7
BLAKE2b-256 e4eaa5e4c22a3500c20fefc737d8a496e4750a14bad48f3a99d419f751efa5b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 65f288aa85cc7cfa9710523723f3b725b4a6becdec20b66d467c517b16a445f3
MD5 d0a27309afc9ebc55400f8def140fae8
BLAKE2b-256 88b7315d08eaa6a88102b811a1eeca67c589a227129b8bb2cc24a20872a3bbf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dda0a15b920c1ce47607bcf612f7f060b748829544537f8866fcddfca3600b85
MD5 f53aef3f053f85d67f1696310fba5fb3
BLAKE2b-256 bdd69f6b9e6026f40b5ca4b8554dcba29f3c62579fc8e28e752af29620372fbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6154946990a2145565b58dc1ebbfd08a53fb33ce96e520f27a3c8db71a1cfc11
MD5 2a79773c78bab5522f0e102749fffc16
BLAKE2b-256 ebb19e86b7b5c98cc8dad7467a652d25a5bc4c74286acf3f082eedee204f8d75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1a37876a828dff9d1c9c5f2ff8ba0ea56ec2c360e0be5e764e16d1a7dd9f6f70
MD5 26778486dfc3a507cab71b7b36307805
BLAKE2b-256 02fdc83bc9cd9ae58246fbee6d4a823836d043e39d65d3ffc4b48c904c7e9282

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51155180782529c1724015e92e23d0e2315e12341717aad6db53aa901235fc07
MD5 238856d0b879b96b8888b24d6fb89989
BLAKE2b-256 fb95ebe0981a8643a485185f3759a5f03a18d272c5aa80b0f6073ead2fc16dae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d2b4e9dcaa460de72e0bb0ea8c29097efbd1bb2c87b56b1667bbaf76fc238da
MD5 b60c1b6557b05c2272427740716c8519
BLAKE2b-256 ea04e95f71f7b0f50f6809cf5fb64aedb963f7a3bfbdb130c2578123e760edb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6e3483dce85850ade8aede3f42f6ab1910d091c45a4c8b517fe77acca81f891d
MD5 55fda66d2828857850155d497bd57cc1
BLAKE2b-256 05257ef63270c917b977d7ed3bd228f352065b98ee56063ea51e43638091a5ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab5d7171cdfda904a07b58c533f205f8373d92be48ce78a47f4d9fea428f428a
MD5 8d748216806a228347b7b017fc78f766
BLAKE2b-256 8b4ff652ace40e8b2713d055fd2fcd389ffaea81619bc62b07a9671a0415b718

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4dee3b53ad6d1452511c92fa8f06d2df71a17e23aab01fd094a2cfa22b774260
MD5 50a336b2298635fae1590484e241876a
BLAKE2b-256 62ba12633a61a3f52607ac7b00d15abfabcb450a76d4b5ca93a87e334e78ed99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e590def8a1d44daae2c49ecffd9baeceaf9e8d12ce3deb7e97fc33f502ba6d36
MD5 654712bad4c8a4be16c4a1eca886aa15
BLAKE2b-256 432231cd368f0f74d45f800919c4e36b390d127ec3f1167b9a3b7b5fbc442d3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0eb4b7eccdb3ecca3d342d86a9f11cd7729f23fcba452e0ca0cb9b2a1f8b1e9
MD5 89160abf79102d98fdcd22a6f502c4c8
BLAKE2b-256 de809aaac46860f626f115aec83663b135b463818d6ac7ea82776273a6eb71b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 52dfb47da32ca18d66daf97fa497fbb83f013aa9635886be3bbb7ebf31e7717e
MD5 7190c4b0615f89a9107116cdd3ffa8a7
BLAKE2b-256 9a9164e29f456d21d3f139cca99148d22cc9e61dbe5f824bb6e3e9b032995943

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 976617c2df37835a02f20452f52ae5611e0c70819df33b04ed07bb47287f1c5b
MD5 579c310a87f61d1ab2e91fda481834b5
BLAKE2b-256 de81920e77d6f0b46072136c38399a0cc3db983aa06b8570af30f445765c5dea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.3a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cec6dbfa425dc01c6752e73a1f8c6e1bf1c0cef3d59816d7cd67d12e5af59fe1
MD5 d33dc485c361ac6c4ebe3b7a1b761466
BLAKE2b-256 0969d4053ca0ccbbfd2092afcc6d13b9f7aaf322ada92f72a44e823f7bc15c12

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