Aerospike Python SDK

A high-level, chainable API for the Aerospike database, built on top of the Aerospike Python Async Client.

Quick Example

import asyncio
from aerospike_sdk import Client, DataSet, Behavior

async def main():
    async with Client("localhost:3000") as client:
        session = client.create_session(Behavior.DEFAULT)
        users = DataSet.of("test", "users")

        # Write
        await (
            session.upsert(users.id(1))
            .bin("name").set_to("Alice")
            .bin("age").set_to(30)
            .execute()
        )

        # Read
        stream = await session.query(users.id(1)).execute()
        result = await stream.first_or_raise()
        print(result.record.bins)  # {'name': 'Alice', 'age': 30}

        # Query with AEL filter
        stream = await (
            session.query(users)
            .where("$.age > 25")
            .execute()
        )
        async for result in stream:
            print(result.record.bins)
        stream.close()

asyncio.run(main())
from aerospike_sdk import SyncClient, DataSet, Behavior

with SyncClient("localhost:3000") as client:
    session = client.create_session(Behavior.DEFAULT)
    users = DataSet.of("test", "users")

    # Write
    session.upsert(users.id(1)).bin("name").set_to("Alice").bin("age").set_to(30).execute()

    # Read
    stream = session.query(users.id(1)).execute()
    result = stream.first_or_raise()
    print(result.record.bins)

    # Query with AEL filter
    stream = session.query(users).where("$.age > 25").execute()
    for result in stream:
        print(result.record.bins)
    stream.close()

Installation

pip install aerospike-sdk

Or install from source:

git clone https://github.com/aerospike/aerospike-client-python-sdk.git
cd aerospike-client-python-sdk
pip install -e ".[dev]"

Key Concepts

Client / SyncClient

Entry point. Connects to an Aerospike cluster and manages the connection lifecycle.

Session

Scoped to a Behavior (policy defaults for timeouts, consistency, etc.). All reads and writes go through a session.

DataSet

A namespace + set pair. Use DataSet.of("ns", "set") to create one, then .id(key) to produce keys.

Builders

Reads return a QueryBuilder, writes return a WriteSegmentBuilder. Chain methods, then call .execute().

Aerospike Expression Language (AEL)

Filter records with string expressions: "$.age > 18 and $.status == 'active'". See the AEL guide.

Requirements

Next Steps