# Aerospike Ruby Client (Alpha)
An Aerospike library for Ruby.
This library is compatible with Ruby 1.9.3+ and supports Linux, Mac OS X and various other BSDs. Rubinius is supported, but not JRuby - yet. For the moment, query and scan operations are also not supported.
- [Usage](#Usage)
- [Prerequisites](#Prerequisites)
- [Installation](#Installation)
- [Tweaking Performance](#Performance)
- [Benchmarks](#Benchmarks)
- [API Documentaion](#API-Documentation)
- [Tests](#Tests)
- [Examples](#Examples)
- [Tools](#Tools)
## Usage:
The following is a very simple example of CRUD operations in an Aerospike database.
```ruby
require 'rubygems'
require 'aerospike'
include Aerospike
client = Client.new("127.0.0.1", 3000)
key = Key.new('test', 'set name', 'key value')
bins = {
'bin1' => 'value1',
'bin2' => 2,
'bin4' => ['value4', {'map1' => 'map val'}],
'bin5' => {'value5' => [124, "string value"]},
}
client.put(key, bins)
record = client.get(key)
record.bins['bin1'] = 'other value'
client.put(key, record.bins)
record = client.get(key)
puts record.bins
client.delete(key)
puts client.exists(key)
client.close
```
More examples illustrating the use of the API are located in the
[`examples`](examples) directory.
Details about the API are available in the [`docs`](docs) directory.
## Prerequisites
[Ruby](https://ruby-lang.org) version v1.9.3+ is required.
Aerospike Ruby client implements the wire protocol, and does not depend on the C client.
It is thread friendly.
Supported operating systems:
- Major Linux distributions (Ubuntu, Debian, Redhat)
- Mac OS X
- other BSDs (untested)
## Installation from Ruby gems:
1. gem install aerospike
## Installation from source:
1. Install Ruby 1.9.3+
2. Install RubyGems
3. Install Bundler: ```gem install bundler```
4. Install dependencies: ```bundle install```
5. Build and Install the gem locally: ```rake build && rake install```
6. Run the benchmark: ```./tools/benchmark/benchmark.rb -u```
## Tests
This library is packaged with a number of tests.
To run all the test cases:
$ bundle exec rspec
## Examples
A variety of example applications are provided in the [`examples`](examples) directory.
See the [`examples/README.md`](examples/README.md) for details.
## Tools
A variety of clones of original tools are provided in the [`tools`](tools) directory.
They show how to use more advanced features of the library to reimplement the same functionality in a more concise way.
#### Benchmarks
Benchmark utility is provided in the [`tools/benchmark`](tools/benchmark) directory.
See the [`tools/benchmark/README.md`](tools/benchmark/README.md) for details.
## API Documentation
API documentation is available in the [`docs`](docs/README.md) directory.
## License
The Aerospike Ruby Client is made available under the terms of the Apache License, Version 2, as stated in the file `LICENSE`.
Individual files may be made available under their own specific license,
all compatible with Apache License, Version 2. Please see individual files for details.