@@ -36,197 +36,158 @@ all went well. If the tuple already exists, the program will throw
36
36
The example program only shows one request and does not show all that's
37
37
necessary for good practice. For that, please see
38
38
`tarantool-python <http://github.com/tarantool/tarantool-python >`__ project at GitHub.
39
- For an example of using Python API with
40
- `queue managers for Tarantool <https://github.com/tarantool/queue >`__, see
41
- `queue-python <https://github.com/tarantool/queue-python >`__ project at GitHub.
42
39
43
40
Also there are several community-driven Python connectors:
44
41
45
42
* `asynctnt <https://github.com/igorcoding/asynctnt >`__ with asyncio support
46
- * `aiotarantool <https://github.com/shveenkov/aiotarantool >`__ also with asyncio support
43
+ * `aiotarantool <https://github.com/shveenkov/aiotarantool >`__ also with asyncio support, ** no active maintenance **
47
44
* `gtarantool <https://github.com/shveenkov/gtarantool >`__ with gevent support, **no active maintenance **
48
45
49
- The table below contains a feature comparison for asynctnt, gtarantool and
50
- tarantool-python. aiotarantool is absent there because it is quite outdated and
46
+ The table below contains a feature comparison for asynctnt and
47
+ tarantool-python. aiotarantool and gtarantool are absent there because they are quite outdated and
51
48
unmaintained.
52
49
53
50
.. _python-feature-comparison :
54
51
55
52
Feature comparison
56
53
------------------
57
54
58
- Last update: November 2022
55
+ Last update: September 2023
59
56
60
57
.. list-table ::
61
58
:header-rows: 1
62
59
:stub-columns: 1
63
60
64
61
* - Parameter
65
62
- `igorcoding/asynctnt <https://github.com/igorcoding/asynctnt >`__
66
- - `shveenkov/gtarantool <https://github.com/shveenkov/gtarantool >`__
67
63
- `tarantool/tarantool-python <https://github.com/tarantool/tarantool-python >`__
68
64
69
65
* - License
70
66
- Apache License 2.0
71
- - LGPL
72
67
- BSD-2
73
68
74
69
* - Is maintained
75
70
- Yes
76
- - No (last updated in 2016)
77
71
- Yes
78
72
79
73
* - Known Issues
80
74
- None
81
75
- None
82
- - None
83
76
84
77
* - Documentation
85
78
- Yes (`github.io <https://igorcoding.github.io/asynctnt/ >`__)
86
- - No
87
79
- Yes (`readthedocs
88
80
<https://tarantool-python.readthedocs.io/en/latest/quick-start.en.html> `__
89
81
and :ref: `tarantool.io <getting_started-python >`)
90
82
91
83
* - Testing / CI / CD
92
84
- GitHub Actions
93
- - No (tests exist)
94
85
- GitHub Actions
95
86
96
87
* - GitHub Stars
97
- - 68
98
- - 17
99
- - 85
88
+ - 73
89
+ - 92
100
90
101
91
* - Static Analysis
102
92
- Yes (Flake8)
103
- - No
104
- - No
93
+ - Yes (Flake8, Pylint)
105
94
106
95
* - Packaging
107
96
- `pip <https://pypi.org/project/asynctnt/ >`__
108
- - `pip <https://pypi.org/project/gtarantool/ >`__
109
97
- `pip, deb, rpm <https://github.com/tarantool/tarantool-python#download-and-install >`__
110
98
111
99
* - Code coverage
112
100
- Yes
113
- - No
114
101
- Yes
115
102
116
103
* - Support asynchronous mode
117
104
- 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
105
- No
123
106
124
107
* - Batching support
125
108
- No
126
- - No
127
- - No (`issue #55 <https://github.com/tarantool/tarantool-python/issues/55 >`__)
109
+ - Yes (with CRUD API)
128
110
129
111
* - Schema reload
130
112
- Yes (automatically, see `auto_refetch_schema <https://igorcoding.github.io/asynctnt/api.html >`__)
131
113
- Yes (automatically)
132
- - Yes (automatically)
133
114
134
115
* - Space / index names
135
116
- Yes
136
117
- Yes
137
- - Yes
138
118
139
119
* - Access tuple fields by names
140
120
- Yes
141
121
- No
142
- - No
143
122
144
123
* - :ref: `SQL support <reference_sql >`
145
124
- Yes
146
- - No
147
125
- Yes
148
126
149
127
* - :ref: `Interactive transactions <txn_mode_stream-interactive-transactions >`
150
128
- Yes
151
- - No
152
129
- No (`issue #163 <https://github.com/tarantool/tarantool-python/issues/163 >`__)
153
130
154
131
* - :ref: `Varbinary support <index-box_data-types >`
155
132
- Yes (in ``MP_BIN `` fields)
156
- - No
157
133
- Yes
158
134
159
135
* - :ref: `Decimal support <msgpack_ext-decimal >`
160
136
- Yes
161
- - No
162
137
- Yes
163
138
164
139
* - :ref: `UUID support <msgpack_ext-uuid >`
165
140
- Yes
166
- - No
167
141
- Yes
168
142
169
143
* - :ref: `EXT_ERROR support <msgpack_ext-error >`
170
144
- Yes
171
- - No
172
145
- Yes
173
146
174
147
* - :ref: `Datetime support <msgpack_ext-datetime >`
175
148
- Yes
176
- - No
177
149
- Yes
178
150
179
151
* - :ref: `Interval support <msgpack_ext-interval >`
180
152
- No (`issue #30 <https://github.com/igorcoding/asynctnt/issues/30 >`__)
181
- - No
182
153
- Yes
183
154
184
155
* - :ref: `box.session.push() responses <box_session-push >`
185
156
- Yes
186
- - No
187
157
- Yes
188
158
189
159
* - :ref: `Session settings <box_space-session_settings >`
190
160
- No
191
161
- No
192
- - No
193
162
194
163
* - `Graceful shutdown <https://github.com/tarantool/tarantool/issues/5924 >`__
195
164
- No
196
165
- No
197
- - No
198
166
199
167
* - `IPROTO_ID (feature discovery) <https://github.com/tarantool/doc/issues/2419 >`__
200
168
- Yes
201
- - No
202
169
- Yes
203
170
204
171
* - `CRUD support <https://github.com/tarantool/crud >`__
205
172
- No
206
- - No
207
- - No (`issue #205 <https://github.com/tarantool/tarantool-python/issues/205 >`__)
173
+ - Yes
208
174
209
175
* - Transparent request retrying
210
176
- No
211
177
- No
212
- - No
213
178
214
179
* - Transparent reconnecting
215
180
- Autoreconnect
216
- - Yes (reconnect_max_attempts, reconnect_delay)
217
181
- Yes (reconnect_max_attempts, reconnect_delay), checking of connection liveness
218
182
219
183
* - Connection pool
220
- - No
221
184
- No
222
185
- Yes (with master discovery)
223
186
224
187
* - Support of `PEP 249 -- Python Database API Specification v2.0 <https://www.python.org/dev/peps/pep-0249/ >`__
225
- - No
226
188
- No
227
189
- `Yes <https://github.com/tarantool/tarantool-python/wiki/PEP-249-Database-API >`__
228
190
229
191
* - `Encrypted connection (Tarantool Enterprise) <https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption >`__
230
192
- No (`issue #22 <https://github.com/igorcoding/asynctnt/issues/22 >`__)
231
- - No
232
193
- Yes
0 commit comments