Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
devel:languages:perl:CPAN-D
perl-DR-Tarantool
perl-DR-Tarantool.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File perl-DR-Tarantool.spec of Package perl-DR-Tarantool
# # spec file for package perl-DR-Tarantool # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: perl-DR-Tarantool Version: 0.44 Release: 0 %define cpan_name DR-Tarantool Summary: Perl driver for L<Tarantool|http://tarantool.org> License: Artistic-1.0 Group: Development/Libraries/Perl Url: https://metacpan.org/release/%{cpan_name} Source0: https://cpan.metacpan.org/authors/id/U/UN/UNERA/%{cpan_name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(AnyEvent) BuildRequires: perl(Devel::GlobalDestruction) BuildRequires: perl(JSON::XS) BuildRequires: perl(List::MoreUtils) Requires: perl(AnyEvent) Requires: perl(Devel::GlobalDestruction) Requires: perl(JSON::XS) Requires: perl(List::MoreUtils) %{perl_requires} %description This module provides a synchronous and asynchronous driver for at http://tarantool.org. The driver does not have external dependencies, but includes the official light-weight Tarantool C client (a single C header which implements all protocol formatting) for packing requests and unpacking server responses. This driver implements "iproto" protocol described in https://github.com/mailru/tarantool/blob/master/doc/box-protocol.txt It is built on top of AnyEvent - an asynchronous event framework, and is therefore easiest to integrate into a program which is already based on AnyEvent. A synchronous version of the driver exists as well, it starts AnyEvent event machine for every request. The driver supports three work flow types: * DR::Tarantool::AsyncClient The primary type, provides an asynchronous, callback-based API. Requires a running AnyEvent machine. * DR::Tarantool::SyncClient Is built on top of DR::Tarantool::AsyncClient. Starts AnyEvent machine for every request. After a request is served, the event loop is stopped, and the results are returned to the caller, or, in case of an error, an exception is thrown. * DR::Tarantool::CoroClient Is also built on top of DR::Tarantool::AsyncClient, but is designed to work in cooperative multitasking environment provided by Coro. Is fully syntax-compatible with DR::Tarantool::SyncClient, but requires a running event loop to operate, like DR::Tarantool::AsyncClient. Requests from different coroutines are served concurrently. at http://tarantool.org binary protocol contains no representation of database schema or tuple field types. Due to this deficiency, to easily integrate with Perl and automatically convert tuple fields to Perl values, the driver needs to know field names and types. To tell the driver about them, an instance of a dedicated class must be used. DR::Tarantool::Spaces is essentially a Perl hash which describes field types and names for each space used in the program. It can hardly be useful on its own, but once a connection is "enlightened" with an instance of this class, access to all tuple fields by a field name becomes possible. Type conversion, as well as packing/unpacking from Tarantool binary format is performed automatically. Please follow the docs for DR::Tarantool::Spaces to learn how to describe a schema. %prep %setup -q -n %{cpan_name}-%{version} find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644 %build perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" make %{?_smp_mflags} %check make test %install %perl_make_install %perl_process_packlist %perl_gen_filelist %files -f %{name}.files %defattr(-,root,root,755) %doc Changes %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor