dynamodb-haystack
Requirements
DynamoDB's native vector search (SearchVectors, vector indexes) is only available in
boto3 >= 1.43.66, which requires Python 3.10+. Both are enforced by this package's metadata.
Limitations
- Metadata filters are evaluated client-side:
filter_documents,count_documentsand the filter-based bulk operations scan the whole table, and embedding retrieval filters the at most 100 nearest candidates that DynamoDB'sSearchVectorsreturns (top_kcannot exceed 100). - Only cosine similarity is supported for now.
- A DynamoDB item is limited to 400 KB, which bounds a document's content, metadata and embedding.
Running the integration tests
The integration tests run against real AWS — there is no local DynamoDB emulator that supports vector indexes. They are skipped unless you opt in:
export AWS_DEFAULT_REGION=<your-region>
export HAYSTACK_DYNAMODB_INTEGRATION_TESTS=1
hatch run test:integration
You also need credentials (any standard boto3 credential source) with permission to
CreateTable, DeleteTable, DescribeTable, ListTables, the item-level operations, and
SearchVectors. Each test class creates one table named haystack_test_<run id>_<class> and
deletes it afterwards; a session-scoped safety net sweeps any table of the same run whose delete
was rejected while its index was still settling. Expect the suite to create and destroy real,
billable tables.
Contributing
Refer to the general Contribution Guidelines.
Release files for dynamodb-haystack 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dynamodb_haystack-1.0.0.tar.gz | 30.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dynamodb_haystack-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.8 kB
Release files / dynamodb_haystack-1.0.0.tar.gz
| Download URL | dynamodb_haystack-1.0.0.tar.gz |
|---|---|
| Size | 30.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
22e0ff086069ab2b95350408545714e3c2d50e9a6898751b7938cf1f5d9f58e1
|
|
BLAKE2b-256 checksum How to use checksums |
6a6b4f15061318ac76c9e73fb03c21e483670841b66f8efe03dff0e096cc9fa3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / dynamodb_haystack-1.0.0-py3-none-any.whl
| Download URL | dynamodb_haystack-1.0.0-py3-none-any.whl |
|---|---|
| Size | 20.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d1d73dd78da8354eb7a71a6b1ebb7ccde5b2659004837903d6291d650e2c5dbe
|
|
BLAKE2b-256 checksum How to use checksums |
13c70611a3785ada55623fe54263497cabbe87276f800c30d0b24f183f6eb098
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log