Skip to content

Commit 0bdea47

Browse files
Add comparison table of Go connectors
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
1 parent ea8024c commit 0bdea47

File tree

1 file changed

+205
-0
lines changed

1 file changed

+205
-0
lines changed

doc/getting_started/getting_started_go.rst

+205
Original file line numberDiff line numberDiff line change
@@ -245,3 +245,208 @@ 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 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+
.. list-table::
260+
:header-rows: 1
261+
:stub-columns: 1
262+
:align: center
263+
264+
* -
265+
- `tarantool/go-tarantool <https://github.com/tarantool/go-tarantool>`_
266+
- `viciious/go-tarantool <https://github.com/viciious/go-tarantool>`_
267+
- `FZambia/tarantool <https://github.com/FZambia/tarantool>`_
268+
269+
* - License
270+
- BSD 2-Clause
271+
- MIT
272+
- BSD 2-Clause
273+
274+
* - Last update
275+
- 2021
276+
- 2021
277+
- 2021
278+
279+
* - Estimation of importance of known bugs
280+
- `#50 <https://github.com/tarantool/go-tarantool/issues/50>`_,
281+
`#89 <https://github.com/tarantool/go-tarantool/issues/89>`_,
282+
`#94 <https://github.com/tarantool/go-tarantool/issues/94>`_
283+
- `#41 <https://github.com/viciious/go-tarantool/issues/41>`_
284+
- No known issues
285+
286+
* - Documentation
287+
- README with examples, API described in code comments
288+
- README with examples, code comments
289+
- README with examples
290+
291+
* - Testing / CI / CD
292+
- GitHub Actions
293+
- Travis CI
294+
- GitHub Actions
295+
296+
* - Github Stars
297+
- 127
298+
- 43
299+
- 12
300+
301+
* - Static Analysis
302+
- No
303+
- golint
304+
- golangci-lint
305+
306+
* - Packaging
307+
- go get
308+
- go get
309+
- go get
310+
311+
* - Code coverage
312+
- No
313+
- No
314+
- No
315+
316+
* - msgpack driver
317+
- `vmihailenco/msgpack/v2 <https://github.com/vmihailenco/msgpack/tree/v2>`_
318+
- `tinylib/msgp <https://github.com/tinylib/msgp>`_
319+
- `vmihailenco/msgpack/v5 <https://github.com/vmihailenco/msgpack/tree/v5>`_
320+
321+
* - Async work
322+
- Yes (channels)
323+
- Yes (channels)
324+
- Yes (channels)
325+
326+
* - Batching
327+
- No
328+
- No
329+
- No
330+
331+
* - Schema reload
332+
- Yes (manual pull)
333+
- Yes (manual pull)
334+
- Yes (manual pull)
335+
336+
* - Space / index names
337+
- Yes
338+
- Yes
339+
- Yes
340+
341+
* - Tuples as structures
342+
- Yes (structure and marshall functions must be predefined in Go code)
343+
- No
344+
- Yes (structure and marshall functions must be predefined in Go code)
345+
346+
* - Access tuple fields by names
347+
- Only if marshalled to structure
348+
- No
349+
- Only if marshalled to structure
350+
351+
* - `SQL <https://www.tarantool.io/en/doc/latest/reference/reference_sql/>`_ support
352+
- No (`#62 <https://github.com/tarantool/go-tarantool/issues/62>`_), eval supported
353+
- No (`#18 <https://github.com/viciious/go-tarantool/issues/18>`_, closed), eval supported
354+
- No, eval supported
355+
356+
* - `Interactive transactions <https://www.tarantool.io/en/doc/latest/book/box/stream/>`_
357+
- No (`#101 <https://github.com/tarantool/go-tarantool/issues/101>`_)
358+
- No
359+
- No
360+
361+
* - `Varbinary <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`_ support
362+
- Yes (with in-built language tools)
363+
- Yes (with in-built language tools)
364+
- Questionable (decoding is weird with in-built language tools)
365+
366+
* - `UUID <https://www.tarantool.io/en/doc/latest/book/box/data_model/>`_ support
367+
- Yes
368+
- No
369+
- No
370+
371+
* - Decimal support
372+
- No (`#96 <https://github.com/tarantool/go-tarantool/issues/96>`_)
373+
- No
374+
- No
375+
376+
* - `EXT_ERROR <https://www.tarantool.io/ru/doc/latest/dev_guide/internals/msgpack_extensions/#the-error-type>`_
377+
support
378+
- Yes
379+
- Yes
380+
- Yes
381+
382+
* - `[Soon] Datetime <https://github.com/tarantool/tarantool/discussions/6244>`_ support
383+
- No
384+
- No
385+
- No
386+
387+
* - `box.session.push() responses <https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_session/push/>`_
388+
- No (`#67 <https://github.com/tarantool/go-tarantool/issues/67>`_)
389+
- No (`#21 <https://github.com/viciious/go-tarantool/issues/21>`_)
390+
- Yes
391+
392+
* - `Session settings <https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_space/_session_settings/>`_
393+
- No
394+
- No
395+
- No
396+
397+
* - `[Soon] Graceful shutdown <https://github.com/tarantool/tarantool/issues/5924>`_
398+
- No
399+
- No
400+
- No
401+
402+
* - `IPROTO_ID (feature discovering) <https://github.com/tarantool/tarantool/issues/6253>`_
403+
- No
404+
- No
405+
- No
406+
407+
* - `tarantool/crud <https://github.com/tarantool/crud>`_ support
408+
- No
409+
- No
410+
- No
411+
412+
* - Support retrying
413+
- No
414+
- No
415+
- No
416+
417+
* - Implicit reconnecting strategy
418+
- Yes
419+
- Yes
420+
- Yes
421+
422+
* - Round robin failover
423+
- Yes
424+
- No
425+
- No
426+
427+
* - `[Soon] Master discovering <https://github.com/tarantool/tarantool/issues/6256>`__
428+
- No
429+
- No
430+
- No
431+
432+
* - `Watchers <https://github.com/tarantool/tarantool/pull/6510>`_
433+
- No
434+
- No
435+
- No
436+
437+
* - Connection pool
438+
- Yes
439+
- No (requests pool supported)
440+
- No (msgpack pool supported)
441+
442+
* - Language features
443+
- No
444+
- context
445+
- context
446+
447+
* - Other features
448+
- Queue API
449+
- Can mimic a Tarantool instance (also as replica)
450+
- No
451+
452+
Last update: December 2021

0 commit comments

Comments
 (0)