@@ -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