SkillAgentSearch skills...

Wal

Write ahead log for Go.

Install / Use

/learn @tidwall/Wal
About this skill

Quality Score

0/100

Supported Platforms

Universal

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.

Related Skills

View on GitHub
GitHub Stars720
CategoryDevelopment
Updated8d ago
Forks75

Languages

Go

Security Score

95/100

Audited on Mar 31, 2026

No findings