Skip to content

Commit 8875d37

Browse files
ligurioart-drmaryartkeypatiencedaurTotktonada
authored
[2pt] Add a table with feature comparison of Python connectors (#2482)
* Add a table with feature comparison of Python connectors Written by Sergey Bronnikov, reviewed by Valeria Beresneva and Alexander Turenko Translated by Maria Kovalevskaya, translation reviewed by Patience Daur Co-authored-by: Sergey Bronnikov <[email protected]> Co-authored-by: Valeria Beresneva <[email protected]> Co-authored-by: Maria Kovalevskaya <[email protected]> Co-authored-by: Patience Daur <[email protected]> Co-authored-by: Alexander Turenko <[email protected]>
1 parent ab175d2 commit 8875d37

File tree

2 files changed

+514
-8
lines changed

2 files changed

+514
-8
lines changed

doc/book/connectors/__python.rst

+177-1
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,180 @@ Also there are several community-driven Python connectors:
4343

4444
* `asynctnt <https://github.com/igorcoding/asynctnt>`__ with asyncio support
4545
* `aiotarantool <https://github.com/shveenkov/aiotarantool>`__ also with asyncio support
46-
* `gtarantool <https://github.com/shveenkov/gtarantool>`__ with gevent support **no active maintenance**
46+
* `gtarantool <https://github.com/shveenkov/gtarantool>`__ with gevent support, **no active maintenance**
47+
48+
The table below contains a feature comparison for asynctnt, gtarantool and
49+
tarantool-python. aiotarantool is absent there because it is quite outdated and
50+
unmaintained.
51+
52+
Feature comparison
53+
------------------
54+
55+
Last update: February 2022
56+
57+
.. list-table::
58+
:header-rows: 1
59+
:stub-columns: 1
60+
61+
* - Parameter
62+
- `igorcoding/asynctnt <https://github.com/igorcoding/asynctnt>`__
63+
- `shveenkov/gtarantool <https://github.com/shveenkov/gtarantool>`__
64+
- `tarantool/tarantool-python <https://github.com/tarantool/tarantool-python>`__
65+
66+
* - License
67+
- Apache License 2.0
68+
- LGPL
69+
- BSD-2
70+
71+
* - Is maintained
72+
- Yes
73+
- No (last updated in 2018)
74+
- Yes
75+
76+
* - Known Issues
77+
- `issue #18 <https://github.com/igorcoding/asynctnt/issues/18>`__ (no running event loop)
78+
- None
79+
- `issue #105 <https://github.com/tarantool/tarantool-python/issues/105>`__ (unpack of binary data)
80+
81+
* - Documentation
82+
- Yes (`github.io <https://igorcoding.github.io/asynctnt/>`__)
83+
- No
84+
- Yes (`tarantool.io
85+
<https://www.tarantool.io/en/doc/latest/getting_started/getting_started_python/>`__
86+
and `readthedocs
87+
<https://tarantool-python.readthedocs.io/en/latest/quick-start.en.html>`__
88+
(`obsolete
89+
<https://github.com/tarantool/tarantool-python/issues/67>`__))
90+
91+
* - Testing / CI / CD
92+
- GitHub Actions
93+
- No (tests exist)
94+
- AppVeyor (only Windows)
95+
96+
* - GitHub Stars
97+
- 51
98+
- 17
99+
- 78
100+
101+
* - Static Analysis
102+
- Yes (Flake8)
103+
- No
104+
- No
105+
106+
* - Packaging
107+
- `pip <https://pypi.org/project/asynctnt/>`__
108+
- `pip <https://pypi.org/project/gtarantool/>`__
109+
- `deb, rpm, pip <https://github.com/tarantool/tarantool-python#download-and-install>`__
110+
111+
* - Code coverage
112+
- Yes
113+
- No
114+
- Yes
115+
116+
* - Support asynchronous mode
117+
- Yes, `asyncio <https://docs.python.org/3/library/asyncio.html>`__
118+
- Yes (`gevent
119+
<https://www.gevent.org/api/gevent.event.html#gevent.event.AsyncResult>`__,
120+
example: `test_gevent.py
121+
<https://github.com/shveenkov/gtarantool/blob/master/tests/test_gevent.py>`__)
122+
- No
123+
124+
* - Batching support
125+
- No
126+
- No
127+
- No (`issue #55 <https://github.com/tarantool/tarantool-python/issues/55>`__)
128+
129+
* - Schema reload
130+
- Yes (automatically, see `auto_refetch_schema <https://igorcoding.github.io/asynctnt/api.html>`__)
131+
- Yes (automatically)
132+
- Yes (automatically)
133+
134+
* - Space / index names
135+
- Yes
136+
- Yes
137+
- Yes
138+
139+
* - Access tuple fields by names
140+
- Yes
141+
- No
142+
- No
143+
144+
* - `SQL support <https://www.tarantool.io/en/doc/latest/reference/reference_sql/>`__
145+
- Yes (tests/test_op_sql.py)
146+
- No
147+
- Yes (tarantool/connection.py)
148+
149+
* - `Interactive transactions <https://www.tarantool.io/en/doc/latest/book/box/stream/>`__
150+
- No
151+
- No
152+
- No (`issue #163 <https://github.com/tarantool/tarantool-python/issues/163>`__)
153+
154+
* - `Varbinary support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
155+
- No
156+
- No
157+
- Yes (`issue #105 <https://github.com/tarantool/tarantool-python/issues/105>`__)
158+
159+
* - `UUID support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
160+
- No
161+
- No
162+
- No
163+
164+
* - `Decimal support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
165+
- Almost (v2 branch)
166+
- No
167+
- No
168+
169+
* - `EXT_ERROR support <https://www.tarantool.io/ru/doc/latest/dev_guide/internals/msgpack_extensions/#the-error-type>`__
170+
- No
171+
- No
172+
- No
173+
174+
* - `Datetime support <https://github.com/tarantool/tarantool/discussions/6244>`__
175+
- No
176+
- No
177+
- No
178+
179+
* - `box.session.push() responses <https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_session/push/>`__
180+
- Yes (see push_subscribe option and docs/pushes.rst)
181+
- No
182+
- No
183+
184+
* - `Session settings <https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_space/_session_settings/>`__
185+
- No
186+
- No
187+
- No
188+
189+
* - `Graceful shutdown <https://github.com/tarantool/tarantool/issues/5924>`__
190+
- No
191+
- No
192+
- No
193+
194+
* - `IPROTO_ID (feature discovering) <https://github.com/tarantool/doc/issues/2419>`__
195+
- No
196+
- No
197+
- No
198+
199+
* - Support `CRUD <https://github.com/tarantool/crud>`__
200+
- No
201+
- No
202+
- No
203+
204+
* - Transparent request retrying
205+
- No
206+
- No
207+
- No
208+
209+
* - Transparent reconnecting
210+
- Autoreconnect
211+
- Yes (reconnect_max_attempts, reconnect_delay)
212+
- Yes (reconnect_max_attempts, reconnect_delay), checking of connection liveness
213+
214+
* - Connection pool
215+
- No
216+
- No
217+
- Yes (round robin failover)
218+
219+
* - Support of `PEP 249 -- Python Database API Specification v2.0 <https://www.python.org/dev/peps/pep-0249/>`__
220+
- No
221+
- No
222+
- `Yes <https://github.com/tarantool/tarantool-python/wiki/PEP-249-Database-API>`__

0 commit comments

Comments
 (0)