# README
Go-Tinybird
A Tinybird module for Go. Why need this module? It provides an easy and standard way of getting data through the Tinybird API.
Features
- Lightweight and fast.
- Native Go implementation. No C-bindings, just pure Go
- Connection pooling for HTTP.
- Test your code with mocks.
- Allow JSON, NDJSON and CSV between tinybird and this module.
- Parallelize HTTP requests.
- Add custom logic
after
andbefore
execute request. For example a cache system. - Shared logger with logrus.
Requirements
Go 1.19 or higher.
Installation
Simple install the package to your $GOPATH with the go tool from shell:
go get -u github.com/the-hotels-network/go-tinybird
Make sure Git is installed on your machine and in your system's PATH.
Configure
NDJSON - Newline-delimited JSON
You can configure it by environment variable TB_NDJSON
or pipe. By default NDJSON is disabled. Please see this example to enable via pipe.
Quickstart
package main
import (
"fmt"
"net/http"
"net/url"
"os"
"github.com/the-hotels-network/go-tinybird"
)
func main() {
params := url.Values{}
params.Add("start_date", "2022-05-01")
params.Add("end_date", "2022-05-30")
params.Add("property_id", "1234")
req := tinybird.Request{
Method: http.MethodGet,
Pipe: tinybird.Pipe{
Name: "tinybird_endpoint",
Parameters: params,
Workspace: tinybird.Workspace{
Token: "token-demo",
},
},
}
err := req.Execute()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
res := req.Response
fmt.Println("Status:", res.Status)
fmt.Println("Error:", res.Error)
fmt.Println("Data:", res.Data)
}
To see more examples, please go to this directory.
Tests
make tests
Local usage
To point to the local version of a dependency in Go rather than the one over the web, use the replace keyword.
And now when you compile this module (go install), it will use your local code rather than the other dependency.
go mod edit -replace github.com/the-hotels-network/go-tinybird=$HOME/go/src/github.com/the-hotels-network/go-tinybird
Revert replacement:
go mod edit -dropreplace github.com/the-hotels-network/go-tinybird
go get -u
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Version is the current release version.
# Variables
Custom HTTP client for this module.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
Specific field with data type.
Pipe is a object on tinybird, contains one or more SQL queries (Nodes) that result in either an API endpoint or a Materialized View.
Basic request struct.
Basic JSON struct for all response by Tinybird.
Statistics information about the response.
Each workspace has a name and token.
# Type aliases
No description provided by the author
No description provided by the author
Slice for all request to execute in parallel.
Generic row structure to allow any field with any type.