TileDB Go Bindings
This package provides TileDB golang bindings via cgo. The bindings have been
designed to be idomatic Go. runtime.SetFinalizer
is used to ensure proper
free'ing of C heap allocated structures.
Quick Links
- GoDoc API documentation: https://pkg.go.dev/github.com/TileDB-Inc/TileDB-Go
- Full Installation Docs: https://docs.tiledb.com/main/how-to/installation
- Quickstart: https://docs.tiledb.com/quickstart
- Full developer documentation for all APIs and integrations: https://docs.tiledb.com
Installation
Supported Platforms
Currently the following platforms are supported:
- Linux
- macOS (OSX)
Prerequisites
This package requires the TileDB shared library be installed and on the system path. See the official TileDB installation instructions for installation methods. TileDB must be compiled with serialization support enabled.
Go Installation
To install these bindings you can use go get
:
go get -v github.com/TileDB-Inc/TileDB-Go
To install package test dependencies:
go get -v -t github.com/TileDB-Inc/TileDB-Go
Package tests can be run with:
go test github.com/TileDB-Inc/TileDB-Go
Compatibility
TileDB-Go follows semantic versioning. Currently TileDB core library does not, as such the below table reference which versions are compatible.
TileDB-Go Version | TileDB Version |
---|---|
0.7.X | 1.6.X |
0.8.0 | 1.7.0 |
0.8.1 | 1.7.0 |
0.8.2 | 1.7.2 |
0.8.3 | >=1.7.3 |
0.8.4 | >=1.7.3 |
0.8.5 | >=1.7.3 |
0.9.0 | 2.0.X |
0.10.0 | 2.1.X |
0.11.0 | 2.2.X |
0.12.0 | 2.3.X |
0.13.0 | >=2.4.X |
0.14.0 | >=2.5.X |
0.15.0 | >=2.8.X |
0.16.0 | 2.10.X |
0.17.0 | 2.11.X |
0.18.0 | 2.12.X |
0.19.0 | 2.13.X |
0.20.0 | 2.14.X |
0.21.0 | 2.15.X |
Missing Functionality
The following TileDB core library features are missing from the Go API:
- TileDB generic object management
- TileDB group creation
Deprecated Functionality
0.21.0
The query methods (Set)?Buffer(Var|Nullable|Var|Unsafe)*
are deprecated because the corresponding
TileDB core methods are removed. The methods will be supported for 2 releases and are expected to be
removed in release 0.23. It is recommended to use the proper combination of
(Set|Get)DataBuffer
, (Set|Get)ValidityBuffer
and (Set|Get)OffsetBuffer
.