0.0
The project is in a healthy, maintained state
Attributes, validations, callbacks, dirty tracking and index-based queries with keyset pagination over Tarantool 2.11+ and 3.x spaces, through tarantool-client or tarantool-crud.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

 Project Readme

tarantool-ruby

Ruby gems for working with Tarantool 2.11+ and 3.x. tarantool-client is a low-level IPROTO client; tarantool-crud wraps the tarantool/crud module for sharded vshard clusters; tarantool-model adds ActiveModel-based models with validations, callbacks, and keyset pagination on top of either storage backend. tarantool-schema declares spaces and indexes idempotently on deploy. tarantool-rails wires all of them into a Rails application; tarantool-opentelemetry turns the client's events into OpenTelemetry spans.

Documentation

API docs for every gem: https://starlexxx.github.io/tarantool-ruby/ (generated with YARD from master).

Requirements

Ruby >= 3.2, Tarantool 2.11+ or 3.x.

Install

gem install tarantool-client
gem install tarantool-crud   # sharded clusters via tarantool/crud
gem install tarantool-model  # ActiveModel models
gem install tarantool-schema # idempotent schema declaration
gem install tarantool-rails  # Rails integration
gem install tarantool-opentelemetry  # spans for the client's events

Or in your Gemfile:

gem 'tarantool-client'
gem 'tarantool-crud'
gem 'tarantool-model'
gem 'tarantool-schema'
gem 'tarantool-rails'
gem 'tarantool-opentelemetry'

Gems

Gem
tarantool-client IPROTO client for Tarantool 2.11+ and 3.x
tarantool-crud Wrapper over tarantool/crud for sharded clusters
tarantool-model ActiveModel-based models over Tarantool spaces
tarantool-schema Idempotent schema declaration for deploys
tarantool-rails Railtie: config/tarantool.yml, log lines, schema tasks, generators
tarantool-opentelemetry OpenTelemetry spans from the client's instrumenter

Errors

Every error raised by these gems descends from Tarantool::Error: the client's own classes such as Tarantool::ConnectionError and Tarantool::ServerError, Tarantool::Crud::Error, Tarantool::Model::Error, Tarantool::Schema::Error, and Tarantool::Rails::Error.

Development

bundle install
bundle exec rubocop
bundle exec rake rbs   # validates the RBS signatures in each gem's sig/ and runs the unit suites under rbs/test

Each gem's README has its own test commands and the containers it needs.

License

MIT — see LICENSE.