Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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 filelog, err:=wal.Open("mylog", nil)
// write some entrieserr=log.Write(1, []byte("first entry"))
err=log.Write(2, []byte("second entry"))
err=log.Write(3, []byte("third entry"))
// read an entrydata, err:=log.Read(1)
println(string(data)) // output: first entry// close the logerr=log.Close()

Batch writes:

// write three entries as a batchbatch:=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 entrieserr=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.

About

Write ahead log for Go.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages