Skip to content

v0.9.0-alpha.1 — Initial Preview

Pre-release
Pre-release

Choose a tag to compare

@paul-brackin paul-brackin released this 29 Apr 00:23
· 12 commits to main since this release

Aerospike Python SDK — v0.9.0-alpha.1

Release Date: April 28, 2026

Highlights

Initial preview release of the Aerospike Python SDK (aerospike-sdk on PyPI, package aerospike_sdk). Python 3.10 – 3.14. Developer preview — not yet production-ready; feedback via GitHub issues welcome.

New features

  • Fluent, chainable API for all operations (write verbs, queries, batches, CDT navigation).
  • First-class sync (SyncClient / SyncSession) and async (Client / Session) surfaces.
  • Aerospike Expression Language (AEL): text-based filters with let ... then, when ... default, and a programmatic Exp builder.
  • Path Expressions: $.bin.{key}.[index] navigation with .get(type: ..., return: ...) path functions.
  • Automatic secondary index selection from AEL where clauses.
  • Behavior configuration: DEFAULT, READ_FAST, STRICTLY_CONSISTENT, FAST_RACK_AWARE, plus derive_with_changes(...) for custom profiles.
  • Decoupled configuration: ClusterDefinition for connection, Behavior for operations.
  • Heterogeneous batch chains: mix writes, reads, deletes, and UDFs across different keys in one round-trip.
  • Multi-record ACID transactions: do_in_transaction, begin_transaction, async context manager.
  • CDT (List/Map) operations with inverted selectors and nested CDT context.
  • HyperLogLog (HLL) operations: init, add, union, fold, cardinality, similarity.
  • Bitwise operations on blob bins.
  • Background server-side tasks: bulk update / delete / touch / UDF with AEL filters.
  • UDF lifecycle: register (bytes or file), remove, execute (single, batch, background).
  • Secondary index management: session.index().on_bin(...).numeric()/.string()/.collection(...).
  • Strong-consistency support via Behavior.STRICTLY_CONSISTENT (linearizable reads, durable deletes).
  • Server-side paged query iteration: query(...).chunk_size(N).execute() returns a RecordStream with has_more_chunks() for forward-only paging via the partition cursor.
  • Wire compression: per-scope use_compression setting on any Behavior.
  • Typed exception hierarchy (AerospikeError subclasses) with result_code and in_doubt.
  • Configurable error routing: raise (default), ErrorStrategy.IN_STREAM, or ErrorHandler callback.
  • TLS support via with_tls_config_of().
  • Authentication: native, external (LDAP), and certificate-based credentials.
  • Standardized logging via stdlib logging with aerospike_sdk.* named loggers.
  • Typed info commands: build, namespaces, sets, secondary indexes.

Supported operations

  • Single-record: insert, update, upsert, replace, replace_if_exists, delete, touch, exists, get (via query).
  • Batch: heterogeneous reads, writes, and deletes in one round-trip.
  • Query: AEL-filtered dataset queries, programmatic Exp filters, secondary-index queries.
  • Background: filtered bulk update / delete / touch / UDF over a DataSet.
  • CDT: List and Map read, write, navigate, and inverted operations.
  • HyperLogLog and bitwise bin operations.
  • Multi-record ACID transactions.
  • UDFs (foreground and background).
  • Async via asyncio and synchronous via SyncClient / SyncSession.

Not supported in this release

  • Geospatial queries
  • Dynamic client configuration
  • Object mapping (record-to-model marshalling)
  • Client-side sorting of query results
  • Server-side string library calls beyond append / prepend
  • Regex filtering in AEL
  • Enhanced client metrics

Breaking changes

N/A — initial release.