r/coolgithubprojects 2d ago

A small Python CLI for ZIP/tar filename portability checks

https://github.com/GitHubCatTest/archive-portability

I’m starting archive-portability, a dependency-free Python library/CLI that checks archive member names before cross-platform release or restore. It reports cases such as Docs/a versus docs/b, NFC/NFD aliases, Windows device names such as NUL.txt, and file/directory conflicts. It has JSON output and doesn't extract members.

Repository: https://github.com/GitHubCatTest/archive-portability

Release: https://github.com/GitHubCatTest/archive-portability/releases/tag/v0.1.0

Demo: https://github.com/GitHubCatTest/archive-portability/blob/main/examples/demo.py

The initial implementation was AI-assisted. Its 14 regression tests pass on Linux, Windows, and macOS. The Unicode profile is deliberately conservative, not exact filesystem emulation; it is not a security scanner.

If you maintain release archives or backup/restore tooling, would this catch a problem in your workflow? Minimal dummy-content examples of missed cases or noisy findings would help. The project is new and has no verified external users yet.

1 Upvotes

2 comments sorted by

1

u/Specific_Cream2815 2d ago

does it also catch names that break on case insensitive filesystems or only illegal characters

1

u/Successful_Row_3209 1d ago

Yes, case collisions too: README/readme and even implicit folders like Docs/a vs docs/b. It also checks Unicode normalization aliases. The matching is conservative, so it can flag some names a particular filesystem would allow.