Categorygithub.com/tidwall/wal
modulepackage
1.1.8
Repository: https://github.com/tidwall/wal.git
Documentation: pkg.go.dev

# README

wal

GoDoc

A simple and fast write ahead log for Go.

Features

  • High durability
  • Fast operations
  • Monotonic indexes
  • Batch writes
  • Log truncation from front or back.

Getting Started

Installing

To start using wal, install Go and run go get:

$ go get -u github.com/tidwall/wal

This will retrieve the library.

Example

// open a new log file
log, err := wal.Open("mylog", nil)

// write some entries
err = log.Write(1, []byte("first entry"))
err = log.Write(2, []byte("second entry"))
err = log.Write(3, []byte("third entry"))

// read an entry
data, err := log.Read(1)
println(string(data))  // output: first entry

// close the log
err = log.Close()

Batch writes:


// write three entries as a batch
batch := new(wal.Batch)
batch.Write(1, []byte("first entry"))
batch.Write(2, []byte("second entry"))
batch.Write(3, []byte("third entry"))

err = log.WriteBatch(batch)

Truncating:

// write some entries
err = log.Write(1, []byte("first entry"))
...
err = log.Write(1000, []byte("thousandth entry"))

// truncate the log from index starting 350 and ending with 950.
err = log.TruncateFront(350)
err = log.TruncateBack(950)

Contact

Josh Baker @tidwall

License

wal source code is available under the MIT License.

# Functions

Open a new write ahead log.

# Constants

Binary format writes entries in binary.
JSON format writes entries as JSON lines.

# Variables

DefaultOptions for Open().
ErrClosed is returned when an operation cannot be completed because the log is closed.
ErrCorrupt is returns when the log is corrupt.
ErrNotFound is returned when an entry is not found.
ErrOutOfOrder is returned from Write() when the index is not equal to LastIndex()+1.
ErrOutOfRange is returned from TruncateFront() and TruncateBack() when the index not in the range of the log's first and last index.

# Structs

Batch of entries.
Log represents a write ahead log.
Options for Log.

# Type aliases

LogFormat is the format of the log files.