{"id":27294078,"url":"https://github.com/igorcoding/ev-tarantool16","last_synced_at":"2025-08-13T20:21:41.624Z","repository":{"id":26837325,"uuid":"30296716","full_name":"igorcoding/EV-Tarantool16","owner":"igorcoding","description":"High performance low-level EV based Tarantool 1.6+ client","archived":false,"fork":false,"pushed_at":"2018-03-25T20:00:52.000Z","size":641,"stargazers_count":11,"open_issues_count":2,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-11T22:45:55.814Z","etag":null,"topics":["async-programming","database-connector","high-performance","libev","perl","tarantool"],"latest_commit_sha":null,"homepage":"https://packagecloud.io/igorcoding/tarantoolcontrib","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igorcoding.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-04T11:58:30.000Z","updated_at":"2023-11-21T06:28:36.000Z","dependencies_parsed_at":"2022-09-01T20:33:43.894Z","dependency_job_id":null,"html_url":"https://github.com/igorcoding/EV-Tarantool16","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/igorcoding/EV-Tarantool16","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorcoding%2FEV-Tarantool16","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorcoding%2FEV-Tarantool16/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorcoding%2FEV-Tarantool16/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorcoding%2FEV-Tarantool16/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igorcoding","download_url":"https://codeload.github.com/igorcoding/EV-Tarantool16/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorcoding%2FEV-Tarantool16/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270305803,"owners_count":24562101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async-programming","database-connector","high-performance","libev","perl","tarantool"],"created_at":"2025-04-11T22:45:45.094Z","updated_at":"2025-08-13T20:21:41.534Z","avatar_url":"https://github.com/igorcoding.png","language":"C","readme":"NAME\n    EV::Tarantool16 - EV client for Tarantool 1.6\n\nVESRION\n    Version 1.39\n\nSYNOPSIS\n        use EV::Tarantool16;\n        my $c; $c = EV::Tarantool16-\u003enew({\n            host =\u003e '127.0.0.1',\n            port =\u003e 3301,\n            username =\u003e 'test_user',\n            password =\u003e 'test_passwd',\n            reconnect =\u003e 0.2,\n            connected =\u003e sub {\n                warn \"connected: @_\";\n                EV::unloop;\n            },\n            connfail =\u003e sub {\n                warn \"connfail: @_ / $!\";\n                EV::unloop;\n            },\n            disconnected =\u003e sub {\n                warn \"discon: @_ / $!\";\n                EV::unloop;\n            },\n        });\n\n        $c-\u003econnect;\n        EV::loop;\n\n        $c-\u003eping(sub {\n            my $a = @_[0];\n            diag Dumper \\@_ if !$a;\n            EV::unloop;\n        });\n        EV::loop;\n\nSUBROUTINES/METHODS\n  new {option =\u003e value,...}\n    Create new EV::Tarantool16 instance.\n\n    host =\u003e $address\n        Address connect to.\n\n    port =\u003e $port\n        Port connect to.\n\n    username =\u003e $username\n        Username.\n\n    password =\u003e $password\n        Password.\n\n    reconnect =\u003e $reconnect\n        Reconnect timeout.\n\n    log_level =\u003e $log_level\n        Logging level. Values: (0: None), (1: Error), (2: Warning), (3:\n        Info), (4: Debug)\n\n    cnntrace =\u003e $cnntrace\n        Enable (1) or disable(0) evcnn tracing.\n\n    ares_reuse =\u003e $ares_reuse\n        Enable (1) or disable(0) c-ares connection reuse (default = 0).\n\n    wbuf_limit =\u003e $wbuf_limit\n        Write vector buffer length limit. Defaults to 16384. Set wbuf_limit\n        = 0 to disable write buffer length check on every request.\n\n    connected =\u003e $sub\n        Called when connection to Tarantool 1.6 instance is established,\n        authenticated successfully and retrieved spaces information from it.\n\n    connfail =\u003e $sub\n        Called when connection to Tarantool 1.6 instance failed.\n\n    disconnected =\u003e $sub\n        Called when Tarantool 1.6 instance disconnected.\n\n  connect\n    Connect to Tarantool 1.6 instance. EV::Tarantool16-\u003econnected is called\n    when connection is established.\n\n  disconnect\n    Disconnect from Tarantool 1.6 instance. EV::Tarantool16-\u003edisconnected is\n    called afterwards.\n\n  ping $opts, $cb-\u003e($result)\n    Execute ping request\n\n    $opts\n        HASHREF of additional options to the request\n\n        timeout =\u003e $timeout\n            Request execution timeout\n\n  eval $lua_expression, $tuple_args, $opts, $cb-\u003e($result)\n    Execute eval request\n\n    $lua_expression\n        Lua code that will be run in tarantool\n\n    tuple_args\n        Tuple (ARRAYREF) that will be passed as argument in lua code\n\n    $opts\n        HASHREF of additional options to the request\n\n        timeout =\u003e $timeout\n            Request execution timeout\n\n        space =\u003e $space\n            This space definition will be used to decode response tuple\n\n        in =\u003e $in\n            Format for parsing input (string). One char is for one argument\n            ('s' = string, 'n' = number, 'a' = array, '*' = anything (type\n            is determined automatically))\n\n  call $function_name, $tuple_args, $opts, $cb-\u003e($result)\n    Execute eval request\n\n    $function_name\n        Lua function that will be called in tarantool\n\n    tuple_args\n        Tuple (ARRAYREF) that will be passed as argument in lua code\n\n    $opts\n        HASHREF of additional options to the request\n\n        timeout =\u003e $timeout\n            Request execution timeout\n\n        space =\u003e $space\n            This space definition will be used to decode response tuple\n\n        in =\u003e $in\n            Format for parsing input (string). One char is for one argument\n            ('s' = string, 'n' = number, 'a' = array, '*' = anything (type\n            is determined automatically))\n\n  select $space_name, $keys, $opts, $cb-\u003e($result)\n    Execute select request\n\n    $space_name\n        Tarantool space name.\n\n    $keys\n        Select keys (ARRAYREF or HASHREF).\n\n    $opts\n        HASHREF of additional options to the request\n\n        timeout =\u003e $timeout\n            Request execution timeout\n\n        hash =\u003e $hash\n            Use hash as result\n\n        index =\u003e $index\n            Index name or id to use\n\n        limit =\u003e $limit\n            Select limit\n\n        offset =\u003e $offset\n            Select offset\n\n        iterator =\u003e $iterator\n            Select iterator type. It is recommended to use the predefined\n            constants EV::Tarantool16::INDEX_#iterator_name# (eg.\n            EV::Tarantool16::INDEX_EQ, EV::Tarantool16::INDEX_GE and so on).\n\n            List of possible iterator names:\n\n            *   EQ\n\n            *   REQ\n\n            *   ALL\n\n            *   LT\n\n            *   LE\n\n            *   GE\n\n            *   GT\n\n            *   BITS_ALL_SET\n\n            *   BITS_ANY_SET\n\n            *   BITS_ALL_NOT_SET\n\n            *   OVERLAPS\n\n            *   NEIGHBOR\n\n            You can also use string names as the value to this option (like\n            'EQ' or 'LT').\n\n        in =\u003e $in\n            Format for parsing input (string). One char is for one argument\n            ('s' = string, 'n' = number, 'a' = array, '*' = anything (type\n            is determined automatically))\n\n  insert $space_name, $tuple, $opts, $cb-\u003e($result)\n    Execute insert request\n\n    $space_name\n        Tarantool space name.\n\n    $tuple\n        Tuple to be inserted (ARRAYREF or HASHREF).\n\n    $opts\n        HASHREF of additional options to the request\n\n        timeout =\u003e $timeout\n            Request execution timeout\n\n        hash =\u003e $hash\n            Use hash as result\n\n        replace =\u003e $replace\n            Insert(0) or replace(1) a tuple\n\n        in =\u003e $in\n            Format for parsing input (string). One char is for one argument\n            ('s' = string, 'n' = number, 'a' = array, '*' = anything (type\n            is determined automatically))\n\n  replace $space_name, $tuple, $opts, $cb-\u003e($result)\n    Execute replace request (same as insert, but replaces tuple if already\n    exists). ($opts-\u003e{replace} = 1)\n\n  update $space_name, $key, $operations, $opts, $cb-\u003e($result)\n    Execute update request\n\n    $space_name\n        Tarantool space name.\n\n    $key\n        Select key where to perform update (ARRAYREF or HASHREF).\n\n    $operations\n        Update operations (ARRAYREF) in this format: [$field_no =\u003e\n        $operation, $operation_args] Please refer to Tarantool 1.6\n        documentaion for more details.\n\n    $opts\n        HASHREF of additional options to the request\n\n        timeout =\u003e $timeout\n            Request execution timeout\n\n        hash =\u003e $hash\n            Use hash as result\n\n        index =\u003e $index\n            Index name or id to use\n\n        in =\u003e $in\n            Format for parsing input (string). One char is for one argument\n            ('s' = string, 'n' = number, 'a' = array, '*' = anything (type\n            is determined automatically))\n\n  upsert $space_name, $tuple, $operations, $opts, $cb-\u003e($result)\n    Execute upsert request\n\n    $space_name\n        Tarantool space name.\n\n    $tuple\n        A tuple that will be inserted to Tarantool if there is no tuple like\n        it already (ARRAYREF or HASHREF).\n\n    $operations\n        Update operations (ARRAYREF) in this format: [$field_no =\u003e\n        $operation, $operation_args] Please refer to Tarantool 1.6\n        documentaion for more details.\n\n    $opts\n        HASHREF of additional options to the request\n\n        timeout =\u003e $timeout\n            Request execution timeout\n\n        hash =\u003e $hash\n            Use hash as result\n\n        in =\u003e $in\n            Format for parsing input (string). One char is for one argument\n            ('s' = string, 'n' = number, 'a' = array, '*' = anything (type\n            is determined automatically))\n\n  delete $space_name, $key, $opts, $cb-\u003e($result)\n    Execute delete request\n\n    $space_name\n        Tarantool space name.\n\n    $key\n        Select key (ARRAYREF or HASHREF).\n\n    $opts\n        HASHREF of additional options to the request\n\n        timeout =\u003e $timeout\n            Request execution timeout\n\n        hash =\u003e $hash\n            Use hash as result\n\n        index =\u003e $index\n            Index name or id to use\n\n        in =\u003e $in\n            Format for parsing input (string). One char is for one argument\n            ('s' = string, 'n' = number, 'a' = array, '*' = anything (type\n            is determined automatically))\n\n  lua $function_name, $args, $opts, $cb-\u003e($result)\n    Execute call request (added for backward compatibility with\n    EV::Tarantool). See 'call' method.\n\n  stats $cb-\u003e($result)\n    Get Tarantool stats\n\n   Result\n    Returns a HASHREF, consisting of the following data:\n\n    arena\n\n        size\n            Arena allocated size\n\n        used\n            Arena used size\n\n        slabs\n            Slabs memory use\n\n    info\n\n        lsn Tarantool log sequence number\n\n        lut Last update time (current_time - box_info.replication.idle)\n\n        lag Replication lag\n\n        pid Process pid\n\n        uptime\n            Server's uptime\n\n    op  Total operations count for each operation (select, insert, ...)\n\n    space\n        Tuples count in each space\n\nRESULT\n  Success result\n        count =\u003e 1,\n        tuples =\u003e [\n                    {\n                      _t1 =\u003e 'tt1',\n                      _t2 =\u003e 'tt2',\n                      _t3 =\u003e 456,\n                      _t4 =\u003e 5\n                    }\n                  ],\n        status =\u003e 'ok',\n        code =\u003e 0,\n        sync =\u003e 5\n\n    count\n        Tuples count\n\n    tuples\n        Tuples themeselves\n\n    status\n        Status string ('ok')\n\n    code\n        Return code (0 if ok, else error code\n        (\u003chttps://github.com/tarantool/tarantool/blob/master/src/box/errcode\n        .h\u003e))\n\n    sync\n        Request id\n\n  Error result\n        [undef, $error_msg, {\n            errstr =\u003e $error_msg,\n            status =\u003e 'error',\n            code =\u003e $error_code,\n            sync =\u003e 3\n        }]\n\n    errstr\n        Error string\n\n    status\n        Status string ('error')\n\n    code\n        Return code (0 if ok, else error code\n        (\u003chttps://github.com/tarantool/tarantool/blob/master/src/box/errcode\n        .h\u003e))\n\n    sync\n        Request id\n\nAUTHOR\n    igorcoding, \u003cigorcoding@gmail.com\u003e, Mons Anderson, \u003cmons@cpan.org\u003e\n\nBUGS\n    Please report any bugs or feature requests in\n    \u003chttps://github.com/igorcoding/EV-Tarantool16/issues\u003e\n\nCOPYRIGHT AND LICENSE\n    Copyright (C) 2015 by igorcoding\n\n    This program is released under the following license: GPL\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorcoding%2Fev-tarantool16","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorcoding%2Fev-tarantool16","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorcoding%2Fev-tarantool16/lists"}