@@ -245,3 +245,185 @@ To send bare Lua code for execution, use ``Eval``:
245
245
.. code-block :: go
246
246
247
247
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