Skip to content

Installation

  • Go 1.26 or later
  • An active Go module (go.mod)

Run this in your project directory:

Terminal window
go get github.com/larsartmann/go-atomic-write@latest
package main
import (
"errors"
"fmt"
atomicwrite "github.com/larsartmann/go-atomic-write"
)
func main() {
path := "/path/to/config.json"
fingerprint, err := atomicwrite.FingerprintFile(path)
if err != nil {
panic(err)
}
newData := []byte(`{"updated": true}`)
err = atomicwrite.WriteVerified(path, newData, fingerprint)
if errors.Is(err, atomicwrite.ErrConcurrentModification) {
fmt.Println("file was modified concurrently — re-read and retry")
return
}
if err != nil {
panic(err)
}
}
Terminal window
go list -m github.com/larsartmann/go-atomic-write