The hyper command uses this package to communicate with the Hyper.sh server. It can also be used by your own Go applications to do anything the command-line interface does – running containers, pulling images, managing volumes, etc.
For example, to list running containers (the equivalent of hyper ps):
package main
import (
	"context"
	"crypto/tls"
	"fmt"
	"net/http"
	"github.com/hyperhq/hyper-api/client"
	"github.com/hyperhq/hyper-api/types"
)
func main() {
	var (
		host          = "tcp://us-west-1.hyper.sh:443"
		customHeaders = map[string]string{}
		verStr        = "v1.23"
		accessKey     = "xx"
		secretKey     = "xxx"
	)
	httpClient := &http.Client{
		Transport: &http.Transport{
			TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
		},
	}
	client, err := client.NewClient(host, verStr, httpClient, customHeaders, accessKey, secretKey)
	if err != nil {
		panic(err)
	}
	containers, err := client.ContainerList(context.Background(), types.ContainerListOptions{})
	if err != nil {
		panic(err)
	}
	for _, container := range containers {
		fmt.Printf("%s\t%s\n", container.ID[:10], container.Image)
	}
}Full documentation is available on document.
engine-api is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.