diff --git a/doc/getting_started/getting_started_go.rst b/doc/getting_started/getting_started_go.rst index 4eb4dbe7eb..b68228104d 100644 --- a/doc/getting_started/getting_started_go.rst +++ b/doc/getting_started/getting_started_go.rst @@ -245,3 +245,207 @@ To send bare Lua code for execution, use ``Eval``: .. code-block:: go resp, err = connection.Eval("return 4 + 5", []interface{}{}) + +.. _getting_started-go-comparison: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Feature comparison +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +There are two more connectors from open-source community available: +`viciious/go-tarantool `_ and +`FZambia/tarantool `_. + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + + * - + - `tarantool/go-tarantool `_ + - `viciious/go-tarantool `_ + - `FZambia/tarantool `_ + + * - License + - BSD 2-Clause + - MIT + - BSD 2-Clause + + * - Last update + - 2021 + - 2021 + - 2021 + + * - Known Issues + - `#50 `_, + `#89 `_, + `#94 `_ + - `#41 `_ + - No known issues + + * - Documentation + - README with examples, API described in code comments + - README with examples, code comments + - README with examples + + * - Testing / CI / CD + - GitHub Actions + - Travis CI + - GitHub Actions + + * - Github Stars + - 127 + - 43 + - 12 + + * - Static Analysis + - No + - golint + - golangci-lint + + * - Packaging + - go get + - go get + - go get + + * - Code coverage + - No + - No + - No + + * - msgpack driver + - `vmihailenco/msgpack/v2 `_ (`#124 `_) + - `tinylib/msgp `_ + - `vmihailenco/msgpack/v5 `_ + + * - Async work + - Yes + - Yes + - Yes + + * - Batching + - No + - No + - No + + * - Schema reload + - Yes (manual pull) + - Yes (manual pull) + - Yes (manual pull) + + * - Space / index names + - Yes + - Yes + - Yes + + * - Tuples as structures + - Yes (structure and marshall functions must be predefined in Go code) + - No + - Yes (structure and marshall functions must be predefined in Go code) + + * - Access tuple fields by names + - Only if marshalled to structure + - No + - Only if marshalled to structure + + * - `SQL `_ support + - No (`#62 `_) + - No (`#18 `_, closed) + - No + + * - `Interactive transactions `_ + - No (`#101 `_) + - No + - No + + * - `Varbinary `_ support + - Yes (with in-built language tools) + - Yes (with in-built language tools) + - Questionable (`#6 `_) + + * - `UUID `_ support + - Yes + - No + - No + + * - Decimal support + - No (`#96 `_) + - No + - No + + * - `EXT_ERROR `_ + support + - No + - No + - No + + * - `Datetime `_ support + - No (`#118 `_) + - No + - No + + * - `box.session.push() responses `_ + - No (`#67 `_) + - No (`#21 `_) + - Yes + + * - `Session settings `_ + - No + - No + - No + + * - `Graceful shutdown `_ + - No + - No + - No + + * - `IPROTO_ID (feature discovering) `_ + - No + - No + - No + + * - `tarantool/crud `_ support + - No + - No + - No + + * - Support retrying + - No + - No + - No + + * - Implicit reconnecting strategy + - Yes + - Yes + - Yes + + * - Round robin failover + - Yes + - No + - No + + * - Master discovering + - No (`#113 `_) + - No + - No + + * - `Watchers `_ + - No + - No + - No + + * - Connection pool + - Yes + - No (requests pool supported) + - No (msgpack pool supported) + + * - Language features + - No (`#48 `_) + - context + - context + + * - Other features + - Queue API + - Can mimic a Tarantool instance (also as replica) + - No + +Last update: December 2021