- Remove default logger - user must explicitly provide logger to get logs from a package
This is an opinionated modification of github.com/tarantool/go-tarantool package.
Changes from the original:
- API changed, some non-obvious (mostly to me personally) API removed.
- This package uses the latest msgpack library github.com/vmihailenco/msgpack/v5 instead of
v2
in original. - Uses
enc.UseArrayEncodedStructs(true)
formsgpack.Encoder
internally so there is no need to definemsgpack:",as_array"
struct tags. - Supports out-of-bound pushes (see box.session.push)
- Adds optional support for
context.Context
(though performance will suffer a bit, if you want a maximum performance then use non-context methods which use per-connection timeout). - Uses sync.Pool for
*msgpack.Decoder
to reduce allocations on decoding stage a bit. Actually this package allocates a bit more than the original one, but allocations are small and overall performance is comparable to the original (based on observations from internal benchmarks). - No
multi
andqueue
packages. - Only one version of
Call
which uses Tarantool 1.7 request code. - Modified connection address behavior: refer to
Connect
function docs to see details. - Per-request timeout detached from underlying connection read and write timeouts.
Op
type to express different update/upsert operations.- Some other cosmetic changes including several linter fixes.