@@ -44,3 +44,214 @@ 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
+
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 <https://www.python.org/dev/peps/pep-0249/ >`__
254
+ - No
255
+ - No
256
+ - No
257
+ - Yes
0 commit comments