@@ -43,4 +43,180 @@ Also there are several community-driven Python connectors:
43
43
44
44
* `asynctnt <https://github.com/igorcoding/asynctnt >`__ with asyncio support
45
45
* `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