Skip to content

Commit 00e3671

Browse files
DifferentialOrangemaryartkeypatiencedaurTotktonada
authored
[2pt] Add comparison table of Go connectors (#2484)
Co-authored-by: Georgy Moiseev <[email protected]> Co-authored-by: Maria Kovalevskaya <[email protected]> Co-authored-by: Patience Daur <[email protected]> Co-authored-by: Alexander Turenko <[email protected]>
1 parent 776d57d commit 00e3671

File tree

2 files changed

+496
-0
lines changed

2 files changed

+496
-0
lines changed

doc/getting_started/getting_started_go.rst

+182
Original file line numberDiff line numberDiff line change
@@ -245,3 +245,185 @@ To send bare Lua code for execution, use ``Eval``:
245245
.. code-block:: go
246246
247247
resp, err = connection.Eval("return 4 + 5", []interface{}{})
248+
249+
.. _getting_started-go-comparison:
250+
251+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
252+
Feature comparison
253+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
254+
255+
There are two more connectors from the open-source community available:
256+
`viciious/go-tarantool <https://github.com/viciious/go-tarantool>`_ and
257+
`FZambia/tarantool <https://github.com/FZambia/tarantool>`_.
258+
259+
Last update: January 2022
260+
261+
.. list-table::
262+
:header-rows: 1
263+
:stub-columns: 1
264+
265+
* -
266+
- `tarantool/go-tarantool <https://github.com/tarantool/go-tarantool>`_
267+
- `viciious/go-tarantool <https://github.com/viciious/go-tarantool>`_
268+
- `FZambia/tarantool <https://github.com/FZambia/tarantool>`_
269+
270+
* - License
271+
- BSD 2-Clause
272+
- MIT
273+
- BSD 2-Clause
274+
275+
* - Last update
276+
- 2022
277+
- 2021
278+
- 2021
279+
280+
* - Documentation
281+
- README with examples, API described in code comments
282+
- README with examples, code comments
283+
- README with examples
284+
285+
* - Testing / CI / CD
286+
- GitHub Actions
287+
- Travis CI
288+
- GitHub Actions
289+
290+
* - GitHub Stars
291+
- 127
292+
- 43
293+
- 12
294+
295+
* - Static analysis
296+
- No
297+
- golint
298+
- golangci-lint
299+
300+
* - Packaging
301+
- go get
302+
- go get
303+
- go get
304+
305+
* - Code coverage
306+
- No
307+
- No
308+
- No
309+
310+
* - msgpack driver
311+
- `vmihailenco/msgpack/v2 <https://github.com/vmihailenco/msgpack/tree/v2>`_ (`#124 <https://github.com/tarantool/go-tarantool/issues/124>`_)
312+
- `tinylib/msgp <https://github.com/tinylib/msgp>`_
313+
- `vmihailenco/msgpack/v5 <https://github.com/vmihailenco/msgpack/tree/v5>`_
314+
315+
* - Async work
316+
- Yes
317+
- Yes
318+
- Yes
319+
320+
* - Schema reload
321+
- Yes (manual pull)
322+
- Yes (manual pull)
323+
- Yes (manual pull)
324+
325+
* - Space / index names
326+
- Yes
327+
- Yes
328+
- Yes
329+
330+
* - Tuples as structures
331+
- Yes (structure and marshall functions must be predefined in Go code)
332+
- No
333+
- Yes (structure and marshall functions must be predefined in Go code)
334+
335+
* - Access tuple fields by names
336+
- Only if marshalled to structure
337+
- No
338+
- Only if marshalled to structure
339+
340+
* - `SQL <https://www.tarantool.io/en/doc/latest/reference/reference_sql/>`_ support
341+
- No (`#62 <https://github.com/tarantool/go-tarantool/issues/62>`_)
342+
- No (`#18 <https://github.com/viciious/go-tarantool/issues/18>`_, closed)
343+
- No
344+
345+
* - `Interactive transactions <https://www.tarantool.io/en/doc/latest/book/box/stream/>`_
346+
- No (`#101 <https://github.com/tarantool/go-tarantool/issues/101>`_)
347+
- No
348+
- No
349+
350+
* - `Varbinary <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`_ support
351+
- Yes (with in-built language tools)
352+
- Yes (with in-built language tools)
353+
- Yes (decodes to string by default, see `#6 <https://github.com/FZambia/tarantool/issues/6>`_)
354+
355+
* - `UUID <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`_ support
356+
- Yes
357+
- No
358+
- No
359+
360+
* - Decimal support
361+
- No (`#96 <https://github.com/tarantool/go-tarantool/issues/96>`_)
362+
- No
363+
- No
364+
365+
* - `EXT_ERROR <https://www.tarantool.io/ru/doc/latest/dev_guide/internals/msgpack_extensions/#the-error-type>`_
366+
support
367+
- No
368+
- No
369+
- No
370+
371+
* - `Datetime <https://github.com/tarantool/tarantool/discussions/6244>`_ support
372+
- No (`#118 <https://github.com/tarantool/go-tarantool/issues/118>`_)
373+
- No
374+
- No
375+
376+
* - `box.session.push() responses <https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_session/push/>`_
377+
- No (`#67 <https://github.com/tarantool/go-tarantool/issues/67>`_)
378+
- No (`#21 <https://github.com/viciious/go-tarantool/issues/21>`_)
379+
- Yes
380+
381+
* - `Session settings <https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_space/_session_settings/>`_
382+
- No
383+
- No
384+
- No
385+
386+
* - `Graceful shutdown <https://github.com/tarantool/tarantool/issues/5924>`_
387+
- No
388+
- No
389+
- No
390+
391+
* - `IPROTO_ID (feature discovering) <https://github.com/tarantool/tarantool/issues/6253>`_
392+
- No
393+
- No
394+
- No
395+
396+
* - `tarantool/crud <https://github.com/tarantool/crud>`_ support
397+
- No
398+
- No
399+
- No
400+
401+
* - Connection pool
402+
- Yes (round-robin failover, no balancing, master discovering planned in `#113 <https://github.com/tarantool/go-tarantool/issues/113>`_)
403+
- No
404+
- No
405+
406+
* - Transparent reconnecting
407+
- Yes (see comments in `#129 <https://github.com/tarantool/go-tarantool/issues/129>`_)
408+
- No (handle reconnects explicitly, refer to `#11 <https://github.com/viciious/go-tarantool/issues/11>`_)
409+
- Yes (see comments in `#7 <https://github.com/FZambia/tarantool/issues/7>`_)
410+
411+
* - Transparent request retrying
412+
- No
413+
- No
414+
- No
415+
416+
* - `Watchers <https://github.com/tarantool/tarantool/pull/6510>`_
417+
- No
418+
- No
419+
- No
420+
421+
* - Language features
422+
- No (`#48 <https://github.com/tarantool/go-tarantool/issues/48>`_)
423+
- context
424+
- context
425+
426+
* - Miscellaneous
427+
- Supports `tarantool/queue <https://github.com/tarantool/queue>`_ API
428+
- Can mimic a Tarantool instance (also as replica)
429+
- API is experimental and breaking changes may happen

0 commit comments

Comments
 (0)