skillfed

zc.lockfile

Basic inter-process locks

zc-lockfile v4.0 3.2M downloads/30d#2,694 on PyPI20
License unclear ZPL-2.1 AGING released

What it is and what it does

zc.lockfile is a lightweight library for creating and managing inter-process locks using the filesystem. Rather than locking files themselves, it uses lock files as a coordination mechanism—the actual resource being protected can be any shared state. The library provides a LockFile class that acquires an OS-level lock on a named file; attempting to lock the same file from another process raises LockError. Lock files persist after release and can optionally include process ID and hostname information for debugging in containerized environments.

The package is designed for scenarios where multiple processes need to serialize access to a shared resource without a dedicated lock server. It is commonly used by database implementations (like ZODB file storage) to mediate access to data files. The implementation is portable across Windows and POSIX systems and supports both CPython and PyPy.

Use it for:

  • Serialize access to a shared database file from multiple worker processes in a multiprocessing application.
  • Prevent concurrent writes to a configuration or state file in a distributed system.
  • Coordinate startup or initialization across multiple container instances by using a lock file on a shared volume.
  • Implement a simple job-locking mechanism to ensure only one instance of a scheduled task runs at a time.
  • Mediate access to a shared resource in a legacy system that predates modern concurrency primitives.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides portable inter-process locks implemented using lock files and OS-level file-locking primitives, allowing multiple processes to coordinate access to shared resources.

Yes, if you need portable file-based inter-process locking without external dependencies. The package is stable, actively maintained, and has no known vulnerabilities. The aging maintenance status (330 days since last release) is not a concern given the mature, narrow scope of the library. The unclear license treatment warrants a quick review if you have strict licensing requirements, but the ZPL-2.1 is OSI-approved and widely used in the Zope ecosystem.

Install

zc-lockfile on PyPI

pip

pip install zc-lockfile

uv

uv add zc-lockfile

poetry

poetry add zc-lockfile

Installing zc.lockfile

Before you install

Low friction: pure Python wheel with only setuptools as a runtime dependency. Maintenance status is aging—last release was 330 days ago—but the repository remains active with recent commits and no archived status.

License in practice

Licensed under ZPL-2.1 (Zope Public License), which is OSI-approved but less common than MIT or Apache 2.0. License treatment is marked unclear; review the license terms if proprietary use or redistribution is planned.

Quickstart

import zc.lockfile

lock = zc.lockfile.LockFile('mylock')
try:
    # critical section
    pass
finally:
    lock.close()

Requires Python 3.9 or later; does not support Python 3.7 or 3.8.

Verify before relying

  • Whether the ZPL-2.1 license is compatible with your project's licensing constraints
  • Performance characteristics under high contention or with many concurrent lock attempts
  • Behavior on network filesystems or non-POSIX systems beyond Windows and POSIX

Package facts

License ZPL-2.1 (unclear)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 1 — setuptools
Maintenance aging — 330 days since the last release
Last repo commit
First released
Downloads 3,226,469/month — #2,694 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: zc_lockfile-4.0-py3-none-any.whl

Keywords: lock

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Zope Public LicenseNatural Language :: EnglishOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development

Tags

inter-process lockingfile-based locksprocess synchronizationlock file implementationconcurrent access controlmultiprocess coordinationportable file locks
concurrencyfile-lockingipc

More Software Development packages