Il m'arrive fréquemment de télécharger une archive Zip de documents web,
dont j'aimerais rapidement feuilleter le contenu.
En principe, c'est aussi simple que de déployer le contenu de l'archive sur mon stockage local,
puis lancer un serveur web comme
http.server
.
Mais pour diverses raisons,
l'étape de décompression peut m'agacer.
J'aimerais juste lancer mon serveur web contre le contenu du fichier Zip.
C'est exactement ce que fait
ziphttpd
.
Disons que je viens de télécharger la
documentation de SQLite
pour consulter ça tranquille sans Internet:
uvx ziphttpd -B sqlite-doc-3510100.zip
Le serveur démarre et indique:
Server set up at http://127.0.0.1:63631/
Je dirige mon navigateur vers
http://127.0.0.1:63631/sqlite-doc-3510100/docs.html
et c'est parti.
La faiblesse actuelle du projet est de ne pas énumérer le contenu de la hiérarchie
de fichiers comprise dans l'archive.
Seuls les fichiers sont associés à un URL consultable.
Il faut qu'un répertoire contienne un
fichier
index.html
pour être accédé directement,
ce n'est pas aussi une convention aussi répandue que je m'y attendais.
Mise à jour du 12 décembre 2025: ziphttpd sert maintenant une description automatique des répertoires qui ne contiennent pas un fichier index.html.
I often download a Zip file of web-ish documents,
which I'd like to browse.
In principle,
this is as easy as unpacking the archive to my local storage,
then run a web server such as
http.server
.
However,
for various reasons,
this decompression steps chafes.
I would like to just HTTP-GET the stuff in the Zip file.
That's precisely what
ziphttpd
enables.
Let's say I just downloaded the
SQLite documentation
to browse it while off the Internet:
uvx ziphttpd -B sqlite-doc-3510100.zip
The web server starts and spits:
Server set up at http://127.0.0.1:63631/
I go to my web browser and punch in URL
http://127.0.0.1:63631/sqlite-doc-3510100/docs.html
and I can get my reading on.
The main issue I noticed so far is that I have not yet implemented the enumeration
of the file hierarchy included in the archive.
Only files are mapped to URLs on this server.
For a directory to be GET-able,
it must contain an
index.html
file,
which is then echoed as response,
and this file structure convention is not as pervasive as I had initially thought.
Update December 12 2025: ziphttpd now serves automatic descriptions of directories that don't contain a index.html file.