You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
start downloading/decompressing before a kernel starts
better still, be able to be done in parallel while a kernel starts
be able to pull out a single file from e.g. ?path as fast as possible
doing other files as needed, ideally in some pattern
Problems
working with .zip and .tar(.gz) isn't part of the browser's native JS environment
Payoff
If this approach can be demonstrated here, this would be a solid candidate for eventually moving to its own repo, as this could power other related, pre-kernel-launch capabilities.
jupyter-archive uses a serverextension. While it might be feasible to port this to work on @jupyterlite/pyodide-kernel or the xeus one, it's still a fairly heavy lift to get either kernel started (10s of seconds, still).
@gt-coar/jupyterlab-archive
libarchive.js is an 875kb WASM compilation of libarchive.
Aside: this was built, pre-JupyterLite, to support archives containing sqlite + assets, so had a companion package, and generally supported ~100mb tarballs. Alas, the examples can't be redistributed, and the effort wasn't meaningfully published... it's unlikely the
If I was starting fresh today, woudl consider the more-maintained, but still 600kb libarchive-wasm.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Assumptions
fetch
ing non-trivially-sized, CORS-friendly.tar.gz
or.zip
files/tarball/
APINice to have
?path
as fast as possibleProblems
.zip
and.tar(.gz)
isn't part of the browser's native JS environmentPayoff
If this approach can be demonstrated here, this would be a solid candidate for eventually moving to its own repo, as this could power other related, pre-kernel-launch capabilities.
Prior art in Jupyter
@hadim/jupyter-archive
jupyter-archive
uses a serverextension. While it might be feasible to port this to work on@jupyterlite/pyodide-kernel
or the xeus one, it's still a fairly heavy lift to get either kernel started (10s of seconds, still).@gt-coar/jupyterlab-archive
libarchive.js
is an 875kb WASM compilation of libarchive.Such as it is, the prototype jupyterlab-archive shows a way to do a fairly efficient wrapper around
libarchive.js
. Further, one could likely do zero-copy transferrable objects.Is it on npm? tldr: no.
Aside: this was built, pre-JupyterLite, to support archives containing sqlite + assets, so had a companion package, and generally supported ~100mb tarballs. Alas, the examples can't be redistributed, and the effort wasn't meaningfully published... it's unlikely the
If I was starting fresh today, woudl consider the more-maintained, but still 600kb
libarchive-wasm
.Beta Was this translation helpful? Give feedback.
All reactions