Links
🆕

Go SDK

Golang SDK for Spice.xyz
The Go SDK gospice is the easiest way to query Spice.xyz from Go.
It uses Apache Apache Flight to efficiently stream data to the client and Apache Arrow Records as data frames.

Requirements

Installation

Get the gospice package.
go get github.com/spiceai/gospice

Usage

1. Create a SpiceClient passing in your API key. Get your free API key at spice.xyz.
spice := NewSpiceClient()
defer spice.Close()
2. Initialize the SpiceClient.
if err := spice.Init("API Key"); err != nil {
panic(fmt.Errorf("error initializing SpiceClient: %w", err))
}
3. Execute a query and get back an Apache Arrow Reader.
reader, err := spice.Query(context.Background(), "SELECT * FROM eth.recent_blocks ORDER BY block_number LIMIT 10")
if err != nil {
panic(fmt.Errorf("error querying: %w", err))
}
defer reader.Release()
4. Iterate through the reader to access the records.
for reader.Next() {
record := reader.Record()
defer record.Release()
fmt.Println(record)
}

Example

Run go run . to execute a sample query and print the results to the console.
See client_test.go for examples on querying Ethereum and Polygon blocks.