gofrs/flock

Thread-safe file locking library in Go

Go

761

198 commits

updated Oct 1, 2026

See the code

README

flock

Go Reference License Go Report Card

flock implements a thread-safe file lock.

It also includes a non-blocking TryLock() function to allow locking without blocking execution.

Installation

go get -u github.com/gofrs/flock

Usage

import "github.com/gofrs/flock"

fileLock := flock.New("/var/lock/go-lock.lock")

locked, err := fileLock.TryLock()

if err != nil {
	// handle locking error
}

if locked {
	// do work
	fileLock.Unlock()
}

For more detailed usage information take a look at the package API docs on GoDoc.

License

flock is released under the BSD 3-Clause License. See the LICENSE file for more details.

Project History

This project was originally github.com/theckman/go-flock, it was transferred to Gofrs by the original author Tim Heckman .

file-locking
flock
flocks
go
golang
golang-libary

Significant stargazers

jen20

305 followers · starred Feb 2018

Trim21

238 followers · starred Jul 2024

Shunsuke Suzuki

610 followers · starred Dec 2024

fsouza

1,243 followers · starred Jun 2023

gofrs/flock

Thread-safe file locking library in Go

Go

761

198 commits

updated Oct 1, 2026

See the code

README

flock

Go Reference License Go Report Card

flock implements a thread-safe file lock.

It also includes a non-blocking TryLock() function to allow locking without blocking execution.

Installation

go get -u github.com/gofrs/flock

Usage

import "github.com/gofrs/flock"

fileLock := flock.New("/var/lock/go-lock.lock")

locked, err := fileLock.TryLock()

if err != nil {
	// handle locking error
}

if locked {
	// do work
	fileLock.Unlock()
}

For more detailed usage information take a look at the package API docs on GoDoc.

License

flock is released under the BSD 3-Clause License. See the LICENSE file for more details.

Project History

This project was originally github.com/theckman/go-flock, it was transferred to Gofrs by the original author Tim Heckman .

file-locking
flock
flocks
go
golang
golang-libary

Significant stargazers

jen20

305 followers · starred Feb 2018

Trim21

238 followers · starred Jul 2024

Shunsuke Suzuki

610 followers · starred Dec 2024

fsouza

1,243 followers · starred Jun 2023