Crate aerospike [−] [src]
A pure-rust client for the Aerospike NoSQL database.
Aerospike is an enterprise-class, NoSQL database solution for real-time operational applications, delivering predictable performance at scale, superior uptime, and high availability at the lowest TCO compared to first-generation NoSQL and relational databases. For more information please refer to https://www.aerospike.com/.
Installation
Add this to your Cargo.toml
:
[dependencies] aerospike = "0.0.1"
Examples
The following is a very simple example of CRUD operations in an Aerospike database.
#[macro_use] extern crate aerospike; use std::env; use std::sync::Arc; use std::time::Instant; use std::thread; use aerospike::Client; use aerospike::{ClientPolicy, ReadPolicy, WritePolicy}; use aerospike::operations; fn main() { let cpolicy = ClientPolicy::default(); let hosts = env::var("AEROSPIKE_HOSTS") .unwrap_or(String::from("127.0.0.1:3000")); let client = Client::new(&cpolicy, &hosts) .expect("Failed to connect to cluster"); let client = Arc::new(client); let mut threads = vec![]; let now = Instant::now(); for i in 0..2 { let client = client.clone(); let t = thread::spawn(move || { let rpolicy = ReadPolicy::default(); let wpolicy = WritePolicy::default(); let key = as_key!("test", "test", i); let wbin = as_bin!("bin999", 1); let bins = vec![&wbin]; client.put(&wpolicy, &key, &bins).unwrap(); let rec = client.get(&rpolicy, &key, None); println!("Record: {}", rec.unwrap()); client.touch(&wpolicy, &key).unwrap(); let rec = client.get(&rpolicy, &key, None); println!("Record: {}", rec.unwrap()); let rec = client.get_header(&rpolicy, &key); println!("Record Header: {}", rec.unwrap()); let exists = client.exists(&wpolicy, &key).unwrap(); println!("exists: {}", exists); let ops = &vec![operations::put(&wbin), operations::get()]; let op_rec = client.operate(&wpolicy, &key, ops); println!("operate: {}", op_rec.unwrap()); let existed = client.delete(&wpolicy, &key).unwrap(); println!("existed (sould be true): {}", existed); let existed = client.delete(&wpolicy, &key).unwrap(); println!("existed (should be false): {}", existed); }); threads.push(t); } for t in threads { t.join().unwrap(); } println!("total time: {:?}", now.elapsed()); }
Reexports
pub use errors::Error; |
pub use errors::ErrorKind; |
pub use errors::Result; |
pub use operations::MapPolicy; |
pub use operations::MapReturnType; |
pub use operations::MapWriteMode; |
pub use policy::Policy; |
Modules
errors |
Error and Result types for the Aerospike client. |
operations |
Functions used to create database operations used in the client's |
policy |
Policy types encapsulate optional parameters for various client operations. |
query |
Types and methods used for database queries and scans. |
Macros
as_bin |
Construct a new bin from a name and an optional value (defaults to the empty value |
as_blob |
Constructs a new Blob Value from one of the supported native data types. |
as_contains |
Create contains number filter for queries on a collection index. |
as_contains_range |
Create contains range filter for queries on a collection index. |
as_eq |
Create equality filter for queries; supports integer and string values. |
as_geo |
Constructs a new GeoJSON Value from one of the supported native data types. |
as_key |
Construct a new key given a namespace, a set name and a user key. |
as_list |
Constructs a new List Value from a list of one or more native data types. |
as_map |
Constructs a Map Value from a list of key/value pairs. |
as_range |
Create range filter for queries; supports integer values. |
as_regions_containing_point |
Create geospatial "regions containing point" filter for queries. For queries on a collection index the collection index type must be specified. |
as_val |
Constructs a new Value from one of the supported native data types. |
as_values |
Constructs a vector of Values from a list of one or more native data types. |
as_within_radius |
Create geospatial "points within radius" filter for queries. For queries on a collection index the collection index type must be specified. |
as_within_region |
Create geospatial "points within region" filter for queries. For queries on a collection index the collection index type must be specified. |
Structs
Bin |
Container object for a record bin, comprising a name and a value. |
Client |
Instantiate a Client instance to access an Aerospike database cluster and perform database operations. |
ClientPolicy |
ClientPolicy encapsulates parameters for client policy command. |
Host |
Host name/port of database server. |
Key |
Unique record identifier. Records can be identified using a specified namespace, an optional set name and a user defined key which must be uique within a set. Records can also be identified by namespace/digest, which is the combination used on the server. |
QueryPolicy |
QueryPolicy encapsulates parameters for query operations. |
Record |
Container object for a database record. |
Recordset |
Virtual collection of records retrieved through queries and scans. During a query/scan, multiple threads will retrieve records from the server nodes and put these records on an internal queue managed by the recordset. The single user thread consumes these records from the queue. |
ScanPolicy |
ScanPolicy encapsulates optional parameters used in scan operations. |
Statement |
Query statement parameters. |
User |
User and assigned roles. |
WritePolicy |
WritePolicy encapsulates parameters for all write operations. |
Enums
CollectionIndexType |
Secondary index collection type. |
CommitLevel |
CommitLevel determines how to handle record writes based on record generation. |
ConsistencyLevel |
ConsistencyLevel indicates how replicas should be consulted in a read operation to provide the desired consistency guarantee. |
Expiration |
Record expiration, also known as time-to-live (TTL). |
GenerationPolicy |
GenerationPolicy determines how to handle record writes based on record generation. |
IndexType |
Underlying data type of secondary index. |
Priority |
Priority of operations on database server. |
RecordExistsAction |
RecordExistsAction determines how to handle record writes based on record generation. |
ResultCode |
Database operation error codes. The error codes are defined in the server-side file proto.h. |
UDFLang |
User-defined function (UDF) language |
Value |
Container for bin values stored in the Aerospike database. |
Type Definitions
ReadPolicy |
ReadPolicy excapsulates parameters for transaction policy attributes used in all database operation calls. |