Overview: Aerospike Rust client
Feature highlights
Execution models:
- Async-first: Built for non-blocking IO, powered by Tokio by default, with optional support for async-std.
- Sync support: Blocking APIs are available using a sync sub-crate for flexibility in legacy or mixed environments.
Advanced data operations:
- Batch protocol: full support for read, write, delete, and UDF operations through the
new
BatchOperationAPI. - New query wire protocols: implements updated query protocols for improved consistency and performance.
Policy and expression enhancements:
- Replica policies: includes support for Replica, including PreferRack placement.
- Policy additions: new fields such as
allow_inline_ssd,respond_all_keysinBatchPolicy,read_touch_ttl, andQueryDurationinQueryPolicy. - Rate limiting: supports
records_per_secondfor query throttling.
Data model improvements:
- Type support: adds support for boolean particle type.
- New data constructs: returns types such as
Exists,OrderedMap,UnorderedMapnow supported for CDT reads. - Value conversions: implements
TryFrom<aerospike::Value>for seamless type interoperability. - Infinity and wildcard: supports
Infinity,Wildcard, and corresponding expression buildersexpressions::infinity()andexpressions::wildcard(). - Size expressions: adds
expressions::record_size()andexpressions::memory_size()for granular control.
See the changelog for more details.
What’s coming next?
We are working toward full functional parity with our other officially supported clients. Features on the roadmap include:
- Partition queries
- Distributed ACID transactions
- Strong consistency
- Full TLS support for secure, production-ready deployments
Ready to get started?
Quickstart
Check out the Aerospike client Quickstart for installation instructions and query examples.
Best practices
Already familiar with the Rust client? The best practices guide can help you optimize for performance and reliability.
Error handling
Actionable errors with recovery suggestions. Know exactly what went wrong and how to fix it.
Usage examples
Want to dive straight into the DSL? We have usage examples for all the basic CRUD operations.