@@ -44,3 +44,215 @@ Also there are several community-driven Python connectors:
44
44
* `asynctnt <https://github.com/igorcoding/asynctnt >`__ with asyncio support
45
45
* `aiotarantool <https://github.com/shveenkov/aiotarantool >`__ also with asyncio support
46
46
* `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