Wal
Write ahead log for Go.
Install / Use
/learn @tidwall/WalREADME
wal
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
node-connect
352.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
