Skip to content

Commit aefcba3

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 aefcba3

File tree

1 file changed

+204
-0
lines changed

1 file changed

+204
-0
lines changed

doc/getting_started/getting_started_go.rst

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

0 commit comments

Comments
 (0)