Skip to content

Commit

Permalink
Add comparison table of Go connectors
Browse files Browse the repository at this point in the history
Compare features of our own tarantool/go-tarantool connector with two
open-source connectors: viciious/go-tarantool [1] and
FZambia/tarantool [2].

1. https://github.com/viciious/go-tarantool
2. https://github.com/FZambia/tarantool
  • Loading branch information
DifferentialOrange committed Dec 24, 2021
1 parent ea8024c commit 988f104
Showing 1 changed file with 204 additions and 0 deletions.
204 changes: 204 additions & 0 deletions doc/getting_started/getting_started_go.rst
Original file line number Diff line number Diff line change
Expand Up @@ -245,3 +245,207 @@ To send bare Lua code for execution, use ``Eval``:
.. code-block:: go
resp, err = connection.Eval("return 4 + 5", []interface{}{})
.. _getting_started-go-comparison:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Feature comparison
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There are two more connectors from open-source community available:
`viciious/go-tarantool <https://github.com/viciious/go-tarantool>`_ and
`FZambia/tarantool <https://github.com/FZambia/tarantool>`_.

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

* -
- `tarantool/go-tarantool <https://github.com/tarantool/go-tarantool>`_
- `viciious/go-tarantool <https://github.com/viciious/go-tarantool>`_
- `FZambia/tarantool <https://github.com/FZambia/tarantool>`_

* - License
- BSD 2-Clause
- MIT
- BSD 2-Clause

* - Last update
- 2021
- 2021
- 2021

* - Known Issues
- `#50 <https://github.com/tarantool/go-tarantool/issues/50>`_,
`#89 <https://github.com/tarantool/go-tarantool/issues/89>`_,
`#94 <https://github.com/tarantool/go-tarantool/issues/94>`_
- `#41 <https://github.com/viciious/go-tarantool/issues/41>`_
- No known issues

* - Documentation
- README with examples, API described in code comments
- README with examples, code comments
- README with examples

* - Testing / CI / CD
- GitHub Actions
- Travis CI
- GitHub Actions

* - Github Stars
- 127
- 43
- 12

* - Static Analysis
- No
- golint
- golangci-lint

* - Packaging
- go get
- go get
- go get

* - Code coverage
- No
- No
- No

* - msgpack driver
- `vmihailenco/msgpack/v2 <https://github.com/vmihailenco/msgpack/tree/v2>`_ (`#124 <https://github.com/tarantool/go-tarantool/issues/124>`_)
- `tinylib/msgp <https://github.com/tinylib/msgp>`_
- `vmihailenco/msgpack/v5 <https://github.com/vmihailenco/msgpack/tree/v5>`_

* - Async work
- Yes
- Yes
- Yes

* - Batching
- No
- No
- No

* - Schema reload
- Yes (manual pull)
- Yes (manual pull)
- Yes (manual pull)

* - Space / index names
- Yes
- Yes
- Yes

* - Tuples as structures
- Yes (structure and marshall functions must be predefined in Go code)
- No
- Yes (structure and marshall functions must be predefined in Go code)

* - Access tuple fields by names
- Only if marshalled to structure
- No
- Only if marshalled to structure

* - `SQL <https://www.tarantool.io/en/doc/latest/reference/reference_sql/>`_ support
- No (`#62 <https://github.com/tarantool/go-tarantool/issues/62>`_)
- No (`#18 <https://github.com/viciious/go-tarantool/issues/18>`_, closed)
- No

* - `Interactive transactions <https://www.tarantool.io/en/doc/latest/book/box/stream/>`_
- No (`#101 <https://github.com/tarantool/go-tarantool/issues/101>`_)
- No
- No

* - `Varbinary <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`_ support
- Yes (with in-built language tools)
- Yes (with in-built language tools)
- Questionable (`#6 <https://github.com/FZambia/tarantool/issues/6>`_)

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

* - Decimal support
- No (`#96 <https://github.com/tarantool/go-tarantool/issues/96>`_)
- No
- No

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

* - `Datetime <https://github.com/tarantool/tarantool/discussions/6244>`_ support
- No (`#118 <https://github.com/tarantool/go-tarantool/issues/118>`_)
- No
- No

* - `box.session.push() responses <https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_session/push/>`_
- No (`#67 <https://github.com/tarantool/go-tarantool/issues/67>`_)
- No (`#21 <https://github.com/viciious/go-tarantool/issues/21>`_)
- Yes

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

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

* - `IPROTO_ID (feature discovering) <https://github.com/tarantool/tarantool/issues/6253>`_
- No
- No
- No

* - `tarantool/crud <https://github.com/tarantool/crud>`_ support
- No
- No
- No

* - Support retrying
- No
- No
- No

* - Implicit reconnecting strategy
- Yes
- Yes
- Yes

* - Round robin failover
- Yes
- No
- No

* - `Master discovering`__
- No (`#113 <https://github.com/tarantool/go-tarantool/issues/113>`_)
- No
- No

* - `Watchers <https://github.com/tarantool/tarantool/pull/6510>`_
- No
- No
- No

* - Connection pool
- Yes
- No (requests pool supported)
- No (msgpack pool supported)

* - Language features
- No (`#48 <https://github.com/tarantool/go-tarantool/issues/48>`_)
- context
- context

* - Other features
- Queue API
- Can mimic a Tarantool instance (also as replica)
- No

Last update: December 2021

0 comments on commit 988f104

Please sign in to comment.