Skip to content

Commit

Permalink
Add a table with feature comparison of Python connectors
Browse files Browse the repository at this point in the history
  • Loading branch information
ligurio committed Dec 6, 2021
1 parent ea8024c commit a6fe53f
Showing 1 changed file with 211 additions and 0 deletions.
211 changes: 211 additions & 0 deletions doc/book/connectors/__python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,214 @@ Also there are several community-driven Python connectors:
* `asynctnt <https://github.com/igorcoding/asynctnt>`__ with asyncio support
* `aiotarantool <https://github.com/shveenkov/aiotarantool>`__ also with asyncio support
* `gtarantool <https://github.com/shveenkov/gtarantool>`__ with gevent support **no active maintenance**

Feature comparison
------------------

Last update: December 2021

.. list-table::
:header-rows: 1

* - Parameter
- `igorcoding/asynctnt <https://github.com/igorcoding/asynctnt>`__
- `shveenkov/aiotarantool <https://github.com/shveenkov/aiotarantool>`__
- `shveenkov/gtarantool <https://github.com/shveenkov/gtarantool>`__
- `tarantool/tarantool-python <https://github.com/tarantool/tarantool-python>`__

* - License
- Apache License 2.0
- LGPL
- LGPL
- Modified BSD

* - Is maintained
- Yes
- No (last updated in 2016)
- No (last updated in 2018)
- Yes

* - Estimation of importance of known bugs
- `issue #18 <https://github.com/igorcoding/asynctnt/issues/18>`__
- `issue #5 <https://github.com/shveenkov/aiotarantool/issues/5>`__
(select() fails), `issue #16
<https://github.com/shveenkov/aiotarantool/issues/16>`__ (Tarantool
1.7 is unsupported)
- No known bugs
- `issue #105 <https://github.com/tarantool/tarantool-python/issues/105>`__ (Unpack of binary data)

* - Documentation
- Yes (`github.io <https://igorcoding.github.io/asynctnt/>`__)
- No
- No
- Yes (`tarantool.io
<https://www.tarantool.io/en/doc/latest/getting_started/getting_started_python/>`__
and `readthedocs
<https://tarantool-python.readthedocs.io/en/latest/quick-start.en.html>`__
(`obsolete
<https://github.com/tarantool/tarantool-python/issues/67>`__))

* - Testing / CI / CD
- Github Actions
- No (tests exists)
- No (tests exists)
- Travis CI and Appveyor

* - Github Stars
- 51
- 38
- 17
- 78

* - Static Analysis
- Yes (Flake8)
- No
- No
- No

* - Packaging
- `Pip <https://pypi.org/project/asynctnt/>`__
- `Pip <https://pypi.org/project/aiotarantool/>`__
- `Pip <https://pypi.org/project/gtarantool/>`__
- `Deb, RPM, Pip <https://github.com/tarantool/tarantool-python#download-and-install>`__

* - Code coverage
- Yes (no visualization)
- No
- No
- Yes (no visualization)

* - Support asynchronous mode
- Yes, `asyncio <https://docs.python.org/3/library/asyncio.html>`__
- Yes, `asyncio <https://docs.python.org/3/library/asyncio.html>`__
- Yes? (`gevent
<https://www.gevent.org/api/gevent.event.html#gevent.event.AsyncResult>`__,
example: `test_gevent.py
<https://github.com/shveenkov/gtarantool/blob/master/tests/test_gevent.py>`__)
- No

* - Batching support
- No
- No
- No
- No (`issue #55 <https://github.com/tarantool/tarantool-python/issues/55>`__)

* - Schema reload, space and index names
- Yes (auto_refetch_schema)
- Yes (handle *SchemaReloadException*)
- No
- Yes (handle *SchemaReloadException*)

* - Schema reload, Access tuple fields by names
- Yes
- FIXME
- FIXME
- FIXME

* - `SQL support <https://www.tarantool.io/en/doc/latest/reference/reference_sql/>`__
- Yes (tests/test_op_sql.py)
- No (using call server-side functions)
- No
- Yes (tarantool/connection.py)

* - `Interactive transactions <https://www.tarantool.io/en/doc/latest/book/box/stream/>`__
- No
- No
- No
- No (`issue #163 <https://github.com/tarantool/tarantool-python/issues/163>`__)

* - `Varbinary support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
- No
- No
- No
- No

* - `UUID support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
- No
- No
- No
- No

* - `Decimal support <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`__
- Almost (v2 branch)
- No
- No
- No

* - `EXT_ERROR support <https://www.tarantool.io/ru/doc/latest/dev_guide/internals/msgpack_extensions/#the-error-type>`__
- No
- No
- No
- No

* - `[Soon] <https://github.com/tarantool/tarantool/discussions/6244>`__ Datetime support
- No
- No
- No
- No

* - `box.session.push() responses <https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_session/push/>`__
- Yes (see push_subscribe option and docs/pushes.rst)
- No
- No
- No

* - `Session settings <https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_space/_session_settings/>`__
- No
- No
- No
- No

* - `Graceful shutdown <https://github.com/tarantool/tarantool/issues/5924>`__
- No
- No
- No
- No

* - `IPROTO_ID (feature discovering) <https://github.com/tarantool/doc/issues/2419>`__
- No
- No
- No
- No

* - Support `CRUD <https://github.com/tarantool/crud>`__
- No
- No
- No
- No

* - Support retrying when appropriate
- No
- No
- No
- No

* - Implicit reconnecting strategy
- autoreconnect
- No
- Yes? (reconnect_max_attempts, reconnect_delay)
- Yes? (reconnect_max_attempts, reconnect_delay), checking of connection liveness

* - Round robin failover
- No
- No
- No
- Yes (see tarantool/mesh_connection.py)

* - `[Soon] <https://github.com/tarantool/tarantool/issues/6256>`__ Master discovering
- No
- No
- No
- Yes? (using call server-side function)

* - Using connection pool
- No
- No
- No
- No

* - Support of `PEP-249 <https://www.python.org/dev/peps/pep-0249/>`__
- No
- No
- No
- Yes

0 comments on commit a6fe53f

Please sign in to comment.