Get started with Woodpecker in minutes
Choose the installation method that best suits your needs
go install github.com/zilliztech/woodpecker/cmd/woodpecker@latest
git clone https://github.com/zilliztech/woodpecker.git
cd woodpecker
make build
docker pull zilliztech/woodpecker:latest
docker run -d -p 8080:8080 zilliztech/woodpecker:latest
Learn how to use Woodpecker in your application
Here's a simple example of writing logs to Woodpecker:
package main
import (
"context"
"github.com/zilliztech/woodpecker/client"
)
func main() {
// Create a new client
c, err := client.New("localhost:8080")
if err != nil {
panic(err)
}
defer c.Close()
// Create a new log
log, err := c.CreateLog(context.Background(), "my-log")
if err != nil {
panic(err)
}
// Write some data
data := []byte("Hello, Woodpecker!")
_, err = log.AppendAsync(context.Background(), data)
if err != nil {
panic(err)
}
// Sync to ensure data is persisted
err = log.Sync(context.Background())
if err != nil {
panic(err)
}
}
Here's how to read logs from Woodpecker:
package main
import (
"context"
"fmt"
"github.com/zilliztech/woodpecker/client"
)
func main() {
// Create a new client
c, err := client.New("localhost:8080")
if err != nil {
panic(err)
}
defer c.Close()
// Open an existing log
log, err := c.OpenLog(context.Background(), "my-log")
if err != nil {
panic(err)
}
// Create a reader
reader, err := log.NewReader(context.Background(), 0, -1)
if err != nil {
panic(err)
}
defer reader.Close()
// Read data
for {
data, err := reader.ReadNext(context.Background())
if err != nil {
if err == io.EOF {
break
}
panic(err)
}
fmt.Printf("Read: %s\n", string(data))
}
}
Configure Woodpecker to suit your needs
Create a configuration file (e.g., `config.yaml`):
server:
address: "0.0.0.0:8080"
max_connections: 1000
storage:
type: "minio"
minio:
endpoint: "localhost:9000"
access_key: "minioadmin"
secret_key: "minioadmin"
bucket: "woodpecker"
use_ssl: false
cache:
max_memory: "1GB"
max_entries: 10000
max_bytes: "100MB"
max_interval: 1000 # milliseconds
Parameter | Description | Default |
---|---|---|
server.address | Server listening address | 0.0.0.0:8080 |
server.max_connections | Maximum number of client connections | 1000 |
storage.type | Storage backend type (minio, local) | minio |
cache.max_memory | Maximum memory usage for cache | 1GB |
cache.max_entries | Maximum number of cache entries | 10000 |
Learn more about Woodpecker's advanced features