Releases: theroyalwhee0/bale
Releases · theroyalwhee0/bale
v0.1.0
Immutable
release. Only release title and notes can be modified.
[0.1.0] - 2025-01-14
Added
Core Library
- ZIP-compatible archive format with fixed-stride entries for O(1) random access
- Memory-mapped I/O with shared file locking for concurrent reads
- Append-only writer with automatic alignment (4096 bytes default)
- Configurable path size (1-4096 bytes) and alignment (up to 16 MB)
- ZIP64 support for large archives (>65535 entries, >4GB)
- Stable entry IDs stored in ZIP-compatible extra field
- Path validation via
safenamecrate (blocks shell metacharacters, control chars) - Reserved
.bale*paths for future format extensions
CLI Commands
touch- Create empty archive or update mtimeadd- Add files with optional--prefixlist- List entries withls -alFstyle outputextract- Extract entries to directorydelete- Remove entries from archivecompact- Reclaim space and deduplicate pathscheck- Verify archive integrity with--fixoptionmount- FUSE filesystem with read/write support
FUSE Filesystem
- Full read/write support (create, modify, delete files)
- Directory operations (mkdir, rmdir)
- Symlink support
- File permissions (chmod) for files, directories, and symlinks
- Timestamp modification (utimensat, mtime)
- Interactive shell mode (
--shell) - Background daemon mode (
--background) - Read-only mode (
--read-only) - Proper error handling (EPERM for chown, ENOSYS for unsupported ops)
Security
- Safe filename validation blocks path traversal and shell injection
- Reserved paths prevent conflicts with format extensions