Skip to content

airbusgeo/geocube-client-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geocube GoLang Client Library

Geocube GoLang Client Library is delivered as an example of Geocube Client. It can be used as a module in a Golang application or as a Command-Line-Interface.

Requirements

  • GoLang 1.16
  • An instance of the Geocube Server, its url and, depending on the configuration, its ApiKey

Installation

Geocube-Client-Go

$ GO111MODULE=on go get github.com/airbusgeo/geocube-client-go
...
import (
  "github.com/airbusgeo/geocube-client-go/client"
)
...

Command-Line-Interface

Build the command-line-interface

$ cd cli && go build
$ ./cli --help
NAME:
   cli - Command-Line-Interface Client for the Geocube

USAGE:
   cli [global options] command [command options] [arguments...]

VERSION:
   0.2.0

DESCRIPTION:
   Command-Line-Interface Client to connect to a Geocube Server (github.com/airbusgeo/geocube)

COMMANDS:
   records, r    manage records
   layouts, l    manage layout
   catalog, c    access catalog
   variables, v  manage variables
   palettes, p   manage palettes
   operation, o  manage datasets
   help, h       Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --srv value     geocube server endpoint (default: "127.0.0.1:8080")
   --apikey value  distribute api key
   --insecure      allow insecure grpc
   --help, -h      show help
   --version, -v   print the version

Connect to the Geocube

The connection is configured using the global options srv, apikey, insecure:

./cli --srv 127.0.0.1:8080 --insecure

Documentation

CLI

Commands are grouped by kind of operations. The entities accepts the CRUD(L) operations (all operations are not implemented yet):

  • records : commands to handle records
  • layouts : commands to handle layouts
  • variables : commands to handle variables
  • palettes : commands to handle palettes (create)
  • operation : commands to handle datasets (indexation, delation, consolidation...)
  • catalog : commands to access catalog (get cube of data) Please follow the Data Access Jupyter notebook

Documentation of each command is available with the following command:

$ ./cli command --help

Client

Documentation of the client will be available soon. Please refer to the GRPC documentation.

Status

Geocube-Client-Go is under development. The API might evolve in backwards incompatible ways until essential functionality is covered.

Update GRPC Interface

Geocube-Client-Go uses the protobuf GRPC interface, automatically generated from the protobuf files provided by the Geocube.

The pb files can be generated using the module protoc-gen-go (go get -u github.com/golang/protobuf/protoc-gen-go), the geocube protobuf folder and the following command:

protoc -I <geocube_folder>/api/v1/ --go_out=plugins=grpc:. pb/geocube.proto pb/catalog.proto pb/records.proto pb/dataformat.proto pb/variables.proto pb/layouts.proto pb/operations.proto

Contributing

Contributions are welcome. Please read the contributing guidelines before submitting fixes or enhancements.

Licensing

Geocube-Client-Go is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Credits

Geocube is a project under development by Airbus DS Geo SA with the support of CNES.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages