Git Product home page Git Product logo

gotiny's Introduction

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 NDJSON between tinybird and this module.
  • Parallelize HTTP requests.
  • Shared logger with logrus.

Requirements

Go 1.18 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

gotiny's People

Contributors

nstrappazzonc avatar gabybrow avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.