Skip to content

Commit 83c4f41

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

File tree

1 file changed

+212
-0
lines changed

1 file changed

+212
-0
lines changed

doc/book/connectors/__python.rst

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

0 commit comments

Comments
 (0)