Skip to content

Commit 50b363a

Browse files
committed
Add a table with feature comparison of Python connectors
1 parent ea8024c commit 50b363a

File tree

1 file changed

+211
-0
lines changed

1 file changed

+211
-0
lines changed

doc/book/connectors/__python.rst

+211
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,214 @@ Also there are several community-driven Python connectors:
4444
* `asynctnt <https://github.com/igorcoding/asynctnt>`__ with asyncio support
4545
* `aiotarantool <https://github.com/shveenkov/aiotarantool>`__ also with asyncio support
4646
* `gtarantool <https://github.com/shveenkov/gtarantool>`__ with gevent support **no active maintenance**
47+
48+
Feature comparison
49+
------------------
50+
51+
Last update: December 2021
52+
53+
.. list-table::
54+
:header-rows: 1
55+
56+
* - Parameter
57+
- `igorcoding/asynctnt <https://github.com/igorcoding/asynctnt>`__
58+
- `shveenkov/aiotarantool <https://github.com/shveenkov/aiotarantool>`__
59+
- `shveenkov/gtarantool <https://github.com/shveenkov/gtarantool>`__
60+
- `tarantool/tarantool-python <https://github.com/tarantool/tarantool-python>`__
61+
62+
* - License
63+
- Apache License 2.0
64+
- LGPL
65+
- LGPL
66+
- Modified BSD
67+
68+
* - Is maintained
69+
- Yes
70+
- No (last updated in 2016)
71+
- No (last updated in 2018)
72+
- Yes
73+
74+
* - Estimation of importance of known bugs
75+
- `issue #18 <https://github.com/igorcoding/asynctnt/issues/18>`__
76+
- `issue #5 <https://github.com/shveenkov/aiotarantool/issues/5>`__
77+
(select() fails), `issue #16
78+
<https://github.com/shveenkov/aiotarantool/issues/16>`__ (Tarantool
79+
1.7 is unsupported)
80+
- No known bugs
81+
- `issue #105 <https://github.com/tarantool/tarantool-python/issues/105>`__ (Unpack of binary data)
82+
83+
* - Documentation
84+
- Yes (`github.io <https://igorcoding.github.io/asynctnt/>`__)
85+
- No
86+
- No
87+
- Yes (`tarantool.io
88+
<https://www.tarantool.io/en/doc/latest/getting_started/getting_started_python/>`__
89+
and `readthedocs
90+
<https://tarantool-python.readthedocs.io/en/latest/quick-start.en.html>`__
91+
(`obsolete
92+
<https://github.com/tarantool/tarantool-python/issues/67>`__))
93+
94+
* - Testing / CI / CD
95+
- Github Actions
96+
- No (tests exists)
97+
- No (tests exists)
98+
- Travis CI and Appveyor
99+
100+
* - Github Stars
101+
- 51
102+
- 38
103+
- 17
104+
- 78
105+
106+
* - Static Analysis
107+
- Yes (Flake8)
108+
- No
109+
- No
110+
- No
111+
112+
* - Packaging
113+
- `Pip <https://pypi.org/project/asynctnt/>`__
114+
- `Pip <https://pypi.org/project/aiotarantool/>`__
115+
- `Pip <https://pypi.org/project/gtarantool/>`__
116+
- `Deb, RPM, Pip <https://github.com/tarantool/tarantool-python#download-and-install>`__
117+
118+
* - Code coverage
119+
- Yes (no visualization)
120+
- No
121+
- No
122+
- Yes (no visualization)
123+
124+
* - Support asynchronous mode
125+
- Yes, `asyncio <https://docs.python.org/3/library/asyncio.html>`__
126+
- Yes, `asyncio <https://docs.python.org/3/library/asyncio.html>`__
127+
- Yes? (`gevent
128+
<https://www.gevent.org/api/gevent.event.html#gevent.event.AsyncResult>`__,
129+
example: `test_gevent.py
130+
<https://github.com/shveenkov/gtarantool/blob/master/tests/test_gevent.py>`__)
131+
- No
132+
133+
* - Batching support
134+
- No
135+
- No
136+
- No
137+
- No (`issue #55 <https://github.com/tarantool/tarantool-python/issues/55>`__)
138+
139+
* - Schema reload, space and index names
140+
- Yes (auto_refetch_schema)
141+
- Yes (handle *SchemaReloadException*)
142+
- No
143+
- Yes (handle *SchemaReloadException*)
144+
145+
* - Schema reload, Access tuple fields by names
146+
- Yes
147+
- FIXME
148+
- FIXME
149+
- FIXME
150+
151+
* - `SQL support <https://www.tarantool.io/en/doc/latest/reference/reference_sql/>`__
152+
- Yes (tests/test_op_sql.py)
153+
- No (using call server-side functions)
154+
- No
155+
- Yes (tarantool/connection.py)
156+
157+
* - `Interactive transactions <https://www.tarantool.io/en/doc/latest/book/box/stream/>`__
158+
- No
159+
- No
160+
- No
161+
- No (`issue #163 <https://github.com/tarantool/tarantool-python/issues/163>`__)
162+
163+
* - `Varbinary support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
164+
- No
165+
- No
166+
- No
167+
- No
168+
169+
* - `UUID support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
170+
- No
171+
- No
172+
- No
173+
- No
174+
175+
* - `Decimal support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
176+
- Almost (v2 branch)
177+
- No
178+
- No
179+
- No
180+
181+
* - `EXT_ERROR support <https://www.tarantool.io/ru/doc/latest/dev_guide/internals/msgpack_extensions/#the-error-type>`__
182+
- No
183+
- No
184+
- No
185+
- No
186+
187+
* - `[Soon] <https://github.com/tarantool/tarantool/discussions/6244>`__ Datetime support
188+
- No
189+
- No
190+
- No
191+
- No
192+
193+
* - `box.session.push() responses <https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_session/push/>`__
194+
- Yes (see push_subscribe option and docs/pushes.rst)
195+
- No
196+
- No
197+
- No
198+
199+
* - `Session settings <https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_space/_session_settings/>`__
200+
- No
201+
- No
202+
- No
203+
- No
204+
205+
* - `Graceful shutdown <https://github.com/tarantool/tarantool/issues/5924>`__
206+
- No
207+
- No
208+
- No
209+
- No
210+
211+
* - `IPROTO_ID (feature discovering) <https://github.com/tarantool/doc/issues/2419>`__
212+
- No
213+
- No
214+
- No
215+
- No
216+
217+
* - Support `CRUD <https://github.com/tarantool/crud>`__
218+
- No
219+
- No
220+
- No
221+
- No
222+
223+
* - Support retrying when appropriate
224+
- No
225+
- No
226+
- No
227+
- No
228+
229+
* - Implicit reconnecting strategy
230+
- autoreconnect
231+
- No
232+
- Yes? (reconnect_max_attempts, reconnect_delay)
233+
- Yes? (reconnect_max_attempts, reconnect_delay), checking of connection liveness
234+
235+
* - Round robin failover
236+
- No
237+
- No
238+
- No
239+
- Yes (see tarantool/mesh_connection.py)
240+
241+
* - `[Soon] <https://github.com/tarantool/tarantool/issues/6256>`__ Master discovering
242+
- No
243+
- No
244+
- No
245+
- Yes? (using call server-side function)
246+
247+
* - Using connection pool
248+
- No
249+
- No
250+
- No
251+
- No
252+
253+
* - Support of `PEP 249 -- Python Database API Specification v2.0 <https://www.python.org/dev/peps/pep-0249/>`__
254+
- No
255+
- No
256+
- No
257+
- Yes

0 commit comments

Comments
 (0)