A Ruby client library for the CrateDB HTTP interface.
- Query execution support.
- DDL command and schema introspection shortcuts.
- Support for BLOB tables.
- Foundation for the activerecord-crate-adapter.
You will need Ruby 2.0 or greater.
The CrateDB Ruby client is available on RubyGems.org, see crate_ruby on RubyGems.org.
To use it, add this line to your application's Gemfile
:
gem 'crate_ruby'
Or install it manually:
gem install crate_ruby
Set up the client.
require 'crate_ruby'
client = CrateRuby::Client.new()
Execute SQL queries.
result = client.execute("SELECT * FROM posts")
=> #<CrateRuby::ResultSet:0x00000002a9c5e8 @rowcount=1, @duration=5>
result.each do |row|
puts row.inspect
end
=> [1, "test", 5]
result.cols
=> ["id", "my_column", "my_integer_col"]
Perform parameter substitution.
client.execute(
"INSERT INTO posts (id, title, tags) VALUES (\$1, \$2, \$3)",
[1, "My life with crate", ['awesome', 'cool']])
Manipulate BLOBs.
require 'digest'
digest = Digest::SHA1.file(file_path).hexdigest
# upload
f = File.read(file_path)
client.blob_put(table_name, digest, f)
# download
data = client.blob_get(table_name, digest)
open(file_path, "wb") do |file|
file.write(data)
end
# deletion
client.blob_delete(table_name, digest)
A default schema can be set by passing in the schema name.
CrateRuby::Client.new(['localhost:4200'], schema: 'my_schema')
Authentication credentials can be passed to the client if needed.
CrateRuby::Client.new(['localhost:4200'], username: 'foo', password: 'supersecret')
SSL can be enabled.
CrateRuby::Client.new(['localhost:4200'], ssl: true)
See also CrateDB examples for Ruby for a basic example program, which exercises both the crate_ruby driver, as well as Ruby's canonical pg driver.
This project is primarily maintained by Crate.IO GmbH, but we welcome community contributions!
See the developer docs and the contribution docs for more information.
Looking for more help?
- Check out our support channels