Skip to content

Installation

Getting Quiver up and running is as easy as shooting an arrow! Well, maybe easier. 🎯

Go Package

The simplest way to use Quiver is as a Go package in your application:

go get github.com/TFMV/quiver

That's it! You're ready to import Quiver in your Go code:

import "github.com/TFMV/quiver"

Prerequisites

Quiver has minimal dependencies, but you'll need:

  • Go 1.18 or later
  • A C compiler (for DuckDB integration)

Platform Support

Quiver runs on:

  • Linux (x86_64, ARM64)
  • macOS (x86_64, Apple Silicon)
  • Windows (x86_64)

Building from Source

If you want to build Quiver from source (maybe you want to contribute or just like the smell of freshly compiled code), here's how:

# Clone the repository
git clone https://github.com/TFMV/quiver.git
cd quiver

# Build the library
go build ./...

# Run tests
go test ./...

Docker

Prefer to keep things containerized? We've got you covered:

# Pull the Quiver image
docker pull tfmv/quiver:latest

# Run Quiver in a container
docker run -p 8080:8080 -v /path/to/data:/data tfmv/quiver

Verifying Your Installation

Let's make sure everything is working:

package main

import (
    "fmt"
    "github.com/TFMV/quiver"
    "go.uber.org/zap"
)

func main() {
    // Create a logger
    logger, _ := zap.NewDevelopment()

    // Initialize Quiver
    config := quiver.Config{
        Dimension: 3,
        StoragePath: ":memory:", // In-memory for testing
    }

    idx, err := quiver.New(config, logger)
    if err != nil {
        panic(err)
    }
    defer idx.Close()

    fmt.Println("Quiver initialized successfully!")
}

If this runs without errors, you're all set! 🎉

Next Steps

Now that you have Quiver installed, check out the Quick Start Guide to learn how to use it.