Catalog PyPI
Back to packageRELEASE DETAILS

0.1.0

PyPI

achillesdb

Python client for AchillesDB, a vector database

databaseembeddingsfaissvector-databasevector-search
Published21 Jun 2026
Direct dependencies3
Transitive dependenciesNot calculated

README

Version 0.1.0 documentation

achillesdb

Python client for AchillesDB, a hybrid vector and document database (WiredTiger + FAISS under the hood).

Install

pip install achillesdb

Requires Python >= 3.10. The client talks to a running AchillesDB server over HTTP, so you'll need one reachable (defaults to localhost:8180).

Quickstart (sync)

from achillesdb import AchillesClient

with AchillesClient(host="localhost", port=8180) as client:
    db = client.create_database("docs")

    collection = db.create_collection("articles")
    collection.add_documents(
        ids=["1", "2"],
        documents=["hello world", "goodbye world"],
        embeddings=[[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]],
        metadatas=[{"category": "tech"}, {"category": "food"}],
    )

    results = collection.query(top_k=5, query_embedding=[0.1, 0.2, 0.3])
    print(results)

Quickstart (async)

import asyncio
from achillesdb import AsyncAchillesClient

async def main():
    async with AsyncAchillesClient(host="localhost", port=8180) as client:
        db = await client.create_database("docs")
        collection = await db.create_collection("articles")
        await collection.add_documents(
            ids=["1"],
            documents=["hello world"],
            embeddings=[[0.1, 0.2, 0.3]],
        )
        results = await collection.query(top_k=5, query_embedding=[0.1, 0.2, 0.3])
        print(results)

asyncio.run(main())

Filtering with where

Pass a plain dict shaped like the HTTP API's where field, or use the W builder for a fluent API. Supported operators: $eq, $ne, $gt, $gte, $lt, $lte, $in, $nin, $arrContains, $and, $or.

from achillesdb import W

collection.query(
    top_k=5,
    query_embedding=[0.1, 0.2, 0.3],
    where=W.and_(W.eq("category", "tech"), W.nin_("year", [2020, 2021])),
)

# equivalent plain-dict form
collection.query(
    top_k=5,
    query_embedding=[0.1, 0.2, 0.3],
    where={"$and": [{"category": "tech"}, {"year": {"$nin": [2020, 2021]}}]},
)

Embedding functions

Pass embedding_function to the client to embed text automatically instead of supplying embeddings/query_embedding yourself:

client = AchillesClient(embedding_function=my_embed_fn)
collection.add_documents(ids=["1"], documents=["hello world"])
collection.query(top_k=5, query="hello")

my_embed_fn takes a list[str] and returns a list[list[float]] (sync or async, matching the client's mode).

Development

cd sdk/python
uv sync
uv run pytest -m unit            # unit + mocked tests, no server required
uv run pytest -m integration     # requires a running AchillesDB server

License

See the repository root for license information.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 3

Native requirements
3 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
pydantic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pydantic>=2.0runtime
pydantic-settings
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pydantic-settings>=2.0runtime
httpx
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
httpx>=0.24runtime

Distribution files

2 collected
achillesdb-0.1.0-py3-none-any.whl

bdist_wheel · 22.61 KB · Python py3

Source file
achillesdb-0.1.0.tar.gz

sdist · 18.32 KB · Python source

Source file

Repository

ACCESSIBLE
iyifr/achilles

Shared repository data · GitHub

License detected in repository
MIT
License branch / ref
main
Last push
3 Jul 2026
Archived
No
Contributor identities
— · partial collection

Public sponsor counts have not been collected. These signals belong to the repository owner.

Downloads & popularity

1count
Gauge · observed snapshots20 Oct 2026
10.50
2026-10-20: 1 · observed 2026-10-20T22:02:08.0764983Z
20 Oct20 Oct

github · 1 observations shown. Missing days are unknown.

View observed values
Date / source periodValueObserved at
2026-10-2012026-10-20T22:02:08.0764983Z

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:12 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:89b62b43042b5ef3603f1349030b19d2f4ccece89014eb43a2db97a7c5e0d7b6

Other collected versions

View all collected versions →