bagit
Create and validate BagIt packages
Decision gist · record as of 2026-08-14
Yes, if you work with digital preservation, archival systems, or need standardized file packages with integrity verification. The permissive license and zero runtime dependencies make it low-risk to adopt. However, the aging maintenance status (427 days since last release) and high install friction (source tarball only) mean you should verify compatibility before deploying to modern environments. For casual use or one-off bag validation, it's straightforward; for production archival systems, confirm it meets your Python version and support expectations.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3; exact minimum version unspecified in metadata.
- High install friction: the package is distributed as a source tarball with no pre-built wheels.
- Maintenance status is aging—last release was 427 days ago—so expect slower response to issues or compatibility problems with newer Python versions.
License · maintenance · safety
permissive license (permissive) — Licensed as permissive public domain, imposing no restrictions on use, modification, or distribution in your own projects.
last release 2025-06-13 (427 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 84,577 downloads/mo, #13,986 on PyPI
Alternatives
Verify before relying
pip install bagit
import bagit
# Create a bag
bag = bagit.make_bag('mydir', {'Contact-Name': 'John Kunze'})
# Validate it
if bag.is_valid():
print('Bag is valid')- Whether the package works with current Python versions (requires_python is unspecified in metadata)
- Current state of the GitHub repository (archived status and commit history not available in fact sheet)
- Whether parallel checksum calculation (--processes flag) is thread-safe or process-safe
What it is and what it does
bagit is a Python library and command-line tool for creating and validating BagIt packages, a standardized format used in digital preservation and archival work. A BagIt bag is a directory structure that bundles data files with checksums and metadata, ensuring file integrity across storage and transfer. The package lets you create bags from existing directories, add or update metadata, regenerate manifests when payload changes, and validate bags against their stored checksums to detect corruption or tampering.
You can use it as a command-line utility (bagit.py) to quickly bag directories with metadata like contact names and checksums, or import it into Python code to programmatically create Bag instances, modify metadata, and run validation checks. It supports multiple checksum algorithms (MD5, SHA1, SHA256, SHA512) and can parallelize both bag creation and validation across multiple CPU cores. No external runtime dependencies are required.
Use it for
- Archive digital collections with cryptographic integrity verification before long-term storage
- Validate received bags to detect file corruption or tampering during transfer or archival
- Batch-create bags from directories with standardized metadata and checksums for institutional workflows
- Regenerate manifests after modifying bag contents to keep checksums in sync with payload changes
- Integrate bag creation into Python preservation pipelines without external command-line tools
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with digital preservation, archival systems, or need standardized file packages with integrity verification.
The permissive license and zero runtime dependencies make it low-risk to adopt. However, the aging maintenance status (427 days since last release) and high install friction (source tarball only) mean you should verify compatibility before deploying to modern environments. For casual use or one-off bag validation, it's straightforward; for production archival systems, confirm it meets your Python version and support expectations.
Install
bagit on PyPI
Before you install
High install friction: the package is distributed as a source tarball with no pre-built wheels. Maintenance status is aging—last release was 427 days ago—so expect slower response to issues or compatibility problems with newer Python versions.
Requires Python 3; exact minimum version unspecified in metadata.
License in practice
Licensed as permissive public domain, imposing no restrictions on use, modification, or distribution in your own projects.
Quickstart
pip install bagit
import bagit
# Create a bag
bag = bagit.make_bag('mydir', {'Contact-Name': 'John Kunze'})
# Validate it
if bag.is_valid():
print('Bag is valid')
Verify before relying
- Whether the package works with current Python versions (requires_python is unspecified in metadata)
- Current state of the GitHub repository (archived status and commit history not available in fact sheet)
- Whether parallel checksum calculation (--processes flag) is thread-safe or process-safe
Package facts
| License | permissive license permissive |
| Python support | Not specified |
| Install friction | High. Source build required |
| Runtime dependencies | None |
| Maintenance | Aging 427 days since the last release |
| First released | |
| Downloads | 84,577 / month, #13,986 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersLicense :: Public DomainProgramming Language :: Python :: 3Topic :: Communications :: File SharingTopic :: Software Development :: Libraries :: Python ModulesTopic :: System :: Filesystems |
Evidence: bagit-1.9.0.tar.gz
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “bagit package creation”
- bagitCreate, validate, and manage BagIt-style packages—a standardized…
- bdbagbdbag creates, validates, and manages BagIt packages—standardized…
- bagit-profileValidates BagIt bags against BagIt profile specifications, checking…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also bagit-profile · bdbag · paytmchecksum · checksumdir · dirhash · ansible-sign · filehash · dbt-loom · rosbags · setuptools-download