All Projects → progress-engine → tarantool.ex

progress-engine / tarantool.ex

Licence: MIT license
Tarantool client library for Elixir projects

Programming Languages

elixir
2628 projects
lua
6591 projects

Projects that are alternatives of or similar to tarantool.ex

tarantool rs
Sync/Async tarantool database connector. WORK IN PROGRESS. DON'T SHARE THIS REPO
Stars: ✭ 14 (-46.15%)
Mutual labels:  connector, driver, tarantool
Yubihsm Go
A Go client for the yubihsm2 binary protocol and connector service
Stars: ✭ 19 (-26.92%)
Mutual labels:  connector, driver
tarantool-php
PECL PHP driver for Tarantool
Stars: ✭ 82 (+215.38%)
Mutual labels:  driver, tarantool
windows-camera-class-filter-driver
An example of a camera class (upper) filter driver for Windows.
Stars: ✭ 27 (+3.85%)
Mutual labels:  driver
stm32f7-qspi
QSPI serial flash driver for the STM32F7xx family of controllers
Stars: ✭ 14 (-46.15%)
Mutual labels:  driver
kafka-connect-http
Kafka Connect connector that enables Change Data Capture from JSON/HTTP APIs into Kafka.
Stars: ✭ 81 (+211.54%)
Mutual labels:  connector
mapper
Map tarantool tuples to php objects.
Stars: ✭ 68 (+161.54%)
Mutual labels:  tarantool
docker
Docker images for tarantool database
Stars: ✭ 44 (+69.23%)
Mutual labels:  tarantool
laravel-db2
laravel-db2 is a simple DB2 service provider for Laravel. It provides DB2 Connection by extending the Illuminate Database component of the laravel framework.
Stars: ✭ 56 (+115.38%)
Mutual labels:  driver
spydriver
🕵️ Lightweight utility to intercept WebDriver and WebElement method calls.
Stars: ✭ 24 (-7.69%)
Mutual labels:  driver
r-exasol
The EXASOL package for R provides an interface to the EXASOL database.
Stars: ✭ 22 (-15.38%)
Mutual labels:  driver
rtl8822bu
RTL8822BU Wireless Driver for Linux
Stars: ✭ 59 (+126.92%)
Mutual labels:  driver
tahoe-lafs-public-clouds
tahoe-lafs backend drivers for no-cost cloud providers
Stars: ✭ 25 (-3.85%)
Mutual labels:  driver
sx126x driver
Driver for SX126x radio
Stars: ✭ 41 (+57.69%)
Mutual labels:  driver
eruption
Realtime RGB LED Driver for Linux
Stars: ✭ 140 (+438.46%)
Mutual labels:  driver
embedded-sht
Embedded SHT Drivers for Sensirion Temperature and Humidity Sensors - Download the Zip Package from the Release Page
Stars: ✭ 53 (+103.85%)
Mutual labels:  driver
libusb-win32
libusb-win32 project official github repo
Stars: ✭ 44 (+69.23%)
Mutual labels:  driver
keithley2600
Python driver for Keithley 2600 series instruments.
Stars: ✭ 26 (+0%)
Mutual labels:  driver
faunadb-csharp
C# driver for FaunaDB
Stars: ✭ 55 (+111.54%)
Mutual labels:  driver
mobius-gui
🎨 Reactive & Stream & Driver based UI framework build on Mobius Utils, equipped with neumorphism-derived & utility-first styles.
Stars: ✭ 43 (+65.38%)
Mutual labels:  driver

Tarantool

Tarantool client for Elixir projects

Installation

If available in Hex, the package can be installed as:

  1. Add tarantool to your list of dependencies in mix.exs:

    def deps do [{:tarantool, "~> 0.0.2"}] end

  2. Ensure tarantool is started before your application:

    def application do [applications: [:tarantool]] end

Usage Examples

iex(1)> : {:ok, t} = Tarantool.start_link
{:ok, #PID<0.129.0>}

iex(2)>  Tarantool.Api.auth(t, %{password: "111222", username: "amalaev"})
{:ok, %{}}

iex(3)>  Tarantool.Api.select(t, %{space_id: 280, limit: 100, key: [], index_id: nil, iterator: nil, offset: 100})
{:ok, []}

iex(4)> Tarantool.Api.select(t, %{space_id: 280, limit: 100, key: [], index_id: nil, iterator: nil, offset: 0})
{:ok,
 [[272, 1, "_schema", "memtx", 0, %{}, [%{"name" => "key", "type" => "str"}]],
  [280, 1, "_space", "memtx", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "owner", "type" => "num"},
    %{"name" => "name", "type" => "str"},
    %{"name" => "engine", "type" => "str"},
    %{"name" => "field_count", "type" => "num"},
    %{"name" => "flags", "type" => "str"},
    %{"name" => "format", "type" => "*"}]],
  [281, 1, "_vspace", "sysview", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "owner", "type" => "num"},
    %{"name" => "name", "type" => "str"},
    %{"name" => "engine", "type" => "str"},
    %{"name" => "field_count", "type" => "num"},
    %{"name" => "flags", "type" => "str"},
    %{"name" => "format", "type" => "*"}]],
  [288, 1, "_index", "memtx", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "iid", "type" => "num"},
    %{"name" => "name", "type" => "str"}, %{"name" => "type", "type" => "str"},
    %{"name" => "opts", "type" => "array"},
    %{"name" => "parts", "type" => "array"}]],
  [289, 1, "_vindex", "sysview", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "iid", "type" => "num"},
    %{"name" => "name", "type" => "str"}, %{"name" => "type", "type" => "str"},
    %{"name" => "opts", "type" => "array"},
    %{"name" => "parts", "type" => "array"}]],
  [296, 1, "_func", "memtx", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "owner", "type" => "num"},
    %{"name" => "name", "type" => "str"},
    %{"name" => "setuid", "type" => "num"}]],
  [297, 1, "_vfunc", "sysview", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "owner", "type" => "num"},
    %{"name" => "name", "type" => "str"},
    %{"name" => "setuid", "type" => "num"}]],
  [304, 1, "_user", "memtx", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "owner", "type" => "num"},
    %{"name" => "name", "type" => "str"}, %{"name" => "type", "type" => "str"},
    %{"name" => "auth", "type" => "*"}]],
  [305, 1, "_vuser", "sysview", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "owner", "type" => "num"},
    %{"name" => "name", "type" => "str"}, %{"name" => "type", "type" => "str"},
    %{"name" => "auth", "type" => "*"}]],
  [312, 1, "_priv", "memtx", 0, %{},
   [%{"name" => "grantor", "type" => "num"},
    %{"name" => "grantee", "type" => "num"},
    %{"name" => "object_type", "type" => "str"},
    %{"name" => "object_id", "type" => "num"},
    %{"name" => "privilege", "type" => "num"}]],
  [313, 1, "_vpriv", "sysview", 0, %{},
   [%{"name" => "grantor", "type" => "num"},
    %{"name" => "grantee", "type" => "num"},
    %{"name" => "object_type", "type" => "str"},
    %{"name" => "object_id", "type" => "num"},
    %{"name" => "privilege", "type" => "num"}]],
  [320, 1, "_cluster", "memtx", 0, %{},
   [%{"name" => "id", "type" => "num"}, %{"name" => "uuid", "type" => "str"}]],
  [512, 1, "demo", "memtx", 0, %{}, []], [513, 1, "demo2", "memtx", 0, %{}, []],
  [514, 1, "aaa", "memtx", 0, %{}, []], [515, 4, "test", "memtx", 0, %{}, []],
  [516, 4, "test123", "memtx", 0, %{}, []],
  [517, 4, "test1234", "memtx", 0, %{}, []]]}

iex(5)> Tarantool.Api.ping(t)
{:ok, %{}}

# INSERT
iex(6)> Tarantool.Api.insert(t, %{space_id: 513, tuple: [1, "hello", 100]})
{:ok, [[1, "hello", 100]]}
# UPDATE: update the field with index 2 using a plus operation
iex(7)> Tarantool.Api.update(t, %{space_id: 513,  index_id: nil, key: [1], tuple: [["+", 2, 101]] })
{:ok, [[1, "hello", 201]]}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].