https://github.com/griddb/go_client
GridDB Go Client
https://github.com/griddb/go_client
Last synced: about 1 year ago
JSON representation
GridDB Go Client
- Host: GitHub
- URL: https://github.com/griddb/go_client
- Owner: griddb
- License: apache-2.0
- Created: 2018-03-15T06:39:54.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-09-30T09:09:07.000Z (over 3 years ago)
- Last Synced: 2025-06-01T22:09:59.351Z (about 1 year ago)
- Language: C++
- Size: 396 KB
- Stars: 17
- Watchers: 10
- Forks: 10
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
GridDB Go Client
## Overview
GridDB Go Client is developed using GridDB C Client and [SWIG](http://www.swig.org/) (Simplified Wrapper and Interface Generator).
## Operating environment
Building of the library and execution of the sample programs have been checked in the following environment.
OS: CentOS 7.9(x64) (GCC 4.8.5)
SWIG: 4.0.2
Go: 1.16/1.18
GridDB C client: V5.0 CE(Community Edition)
GridDB server: V5.0 CE, CentOS 7.9(x64) (GCC 4.8.5)
OS: Ubuntu 18.04(x64) (GCC 7.3.0) / 20.04(x64) (GCC 9.4.0)
SWIG: 4.0.2
Go: 1.16/1.18
GridDB C client: V5.0 CE
GridDB server: V5.0 CE, Ubuntu 18.04(x64) (Note: If you build from source code, please use GCC 4.8.5.)
OS: Windows 10(x64) (gdm64-gcc 10.3.0)
SWIG: 4.0.2
Go: 1.16/1.18
GridDB C client: V5.0 CE
GridDB server: V5.0 CE, CentOS 7.9(x64) (GCC 4.8.5)
## QuickStart (CentOS, Ubuntu)
### Preparations
Install SWIG as below.
$ wget https://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz
$ tar xvfz swig-4.0.2.tar.gz
$ cd swig-4.0.2
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
Note: If CentOS, you might need to install pcre in advance.
$ sudo yum install pcre2-devel.x86_64
Install Go.
Install [GridDB Server](https://github.com/griddb/griddb) and [C Client](https://github.com/griddb/c_client).
Note:
- If you build Server from source code, please use GCC 4.8.5.
- If you build C Client from source code, please set LIBRARY_PATH and LD_LIBRARY_PATH.
Ex.)
$ export LIBRARY_PATH=$LIBRARY_PATH:$C_CLIENT_HOME/bin
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$C_CLIENT_HOME/bin
### Build and Run
1. Set the GOPATH variable for Go module files.
2. Get Go client source code.
$ go env -w GO111MODULE=off
$ go get -d github.com/griddb/go_client
3. Run script to generate resource and install Go client
$ cd $GOPATH/src/github.com/griddb/go_client
$ ./run_swig.sh
$ go install
4. Import "github.com/griddb/go_client" in Go.
### How to run sample
GridDB Server need to be started in advance.
1. The command to run sample
$ go run sample/sample1.go
-->Person: name=name02 status=false count=1 lob=[65, 66, 67, 68, 69, 70, 71, 72, 73, 74]
## QuickStart (Windows)
### Preparations
Install SWIG as below.
- Download zip package from https://sourceforge.net/projects/swig/files/swigwin/swigwin-4.0.2/swigwin-4.0.2.zip/download
- Extract the zip package then set PATH variable for swig tool.
Install GO
- Download and install package from https://dl.google.com/go/go1.16.2.windows-amd64.msi
Install [GridDB Server](https://github.com/griddb/griddb) on CentOS. (Note: If you build them from source code, please use GCC 4.8.5.)
Install GridDB C Client.
- Please refer to https://github.com/griddb/c_client to install GridDB C client.
- After installing GridDB C client, create folder \libs and store gridstore_c.dll (not use gridstore_c.lib) into it.
Set LIBRARY_PATH.
$ set LIBRARY_PATH=%LIBRARY_PATH%:
Install tdm64-gcc
- Download and install package from https://sourceforge.net/projects/tdm-gcc/files/v10.3.0-tdm64-2/tdm64-gcc-10.3.0-2.exe/download
### Build and Run in cmd
1. Set the GOPATH variable for Go module files.
2. Get Go client source code.
$ go env -w GO111MODULE=off
$ go get -d github.com/griddb/go_client
3. Run script to generate resource and install Go client
$ cd %GOPATH%/src/github.com/griddb/go_client
$ ./run_swig.bat
$ go install
4. Import "github.com/griddb/go_client" in Go.
### How to run sample
GridDB Server need to be started in advance.
1. Set PATH
$ set PATH=%PATH%:
2. The command to run sample
$ go run sample/sample1.go
-->[ 'name01', false, 1, ]
## Function
(available)
- STRING, BOOL, BYTE, SHORT, INTEGER, LONG, FLOAT, DOUBLE, TIMESTAMP, BLOB type for GridDB
- put single row, get row with key
- normal query, aggregation with TQL
- Multi-Put/Get/Query (batch processing)
(not available)
- GEOMETRY, Array type for GridDB
- timeseries-specific function like gsAggregateTimeSeries, gsQueryByTimeSeriesSampling in C client
- affinity
Please refer to the following files for more detailed information.
- [Go Client API Reference](https://griddb.github.io/go_client/GoAPIReference.htm)
Note:
1. After calling a method getting GridDB object, user must call DeleteClassName() function for each object.
If possible, we recommend to use a defer of the DeleteClassName call like sample1.go.
2. The current API might be changed in the next version. e.g. ContainerInfo()
## Community
* Issues
Use the GitHub issue function if you have any requests, questions, or bug reports.
* PullRequest
Use the GitHub pull request function if you want to contribute code.
You'll need to agree GridDB Contributor License Agreement(CLA_rev1.1.pdf).
By using the GitHub pull request function, you shall be deemed to have agreed to GridDB Contributor License Agreement.
## License
GridDB Go Client source license is Apache License, version 2.0.