
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
rerun-notebook
Part of the Rerun project.
rerun-notebook
is a support package for rerun-sdk
's notebook integration. This is an implementation package that shouldn't be directly interacted with. It is typically installed using the notebook
extra of rerun-sdk
:
pip install "rerun-sdk[notebook]"
There are several reasons for this package to be separate from the main rerun-sdk
package:
rerun-notebook
includes the JS+Wasm distribution of the Rerun viewer (~31MiB). Adding it to the main rerun-sdk
package would double its file size.rerun-notebook
uses hatch as package backend, and benefits from the hatch-jupyter-builder plug-in. Since rerun-sdk
must use Maturin, it would make the package management more complex.rerun-notebook
implies building rerun_js
, which is best avoided when iterating on rerun-sdk
outside of notebook environments.Even though rerun_notebook
ships with the assets bundled in, by default it will try to load them from
https://app.rerun.io
. This is because the way anywiget transmits the asset at the moment results in
a memory leak of the entire module for each cell execution.
If your network does not allow you to access app.rerun.io
, the behavior can be changed by setting the
the RERUN_NOTEBOOK_ASSET
environment variable before you import rerun_notebook
. This variable must
be set prior to your import because AnyWidget
stores the resource on the widget class instance
once at import time.
The assets are:
re_viewer_bg.wasm
, which is our Viewer compiled to Wasm, andwidget.js
, which is the glue code used to bind it to a Jupyter widget.Both can be built in the rerun
repository by running pixi run py-build-notebook
.
Setting:
RERUN_NOTEBOOK_ASSET=inline
Will cause rerun_notebook
to directly transmit the inlined assets to the widget over Jupyter comms.
This will be the most portable way to use the widget, but is currently known to leak memory and
has some performance issues in environments such as Google colab. The browser cannot cache the resulting
JS/Wasm, so it ends up spending a lot more time loading it in every output cell.
Setting:
RERUN_NOTEBOOK_ASSET=serve-local
Will cause rerun_notebook
to launch a thread serving the assets from the local machine during
the lifetime of the kernel. This will be the best way to use the widget in a notebook environment
when your notebook server is running locally.
The JS and Wasm are served separately, so the Wasm can be stream-compiled, resulting in much faster startup times. Both can also be cached by the browser.
Setting:
RERUN_NOTEBOOK_ASSET=https://your-hosted-asset-url.com/widget.js
Will cause rerun_notebook
to load the assets from the provided URL. This is the most flexible way to
use the widget, but requires you to host the asset yourself.
Note that we require the URL to point to a widget.js
file, but the Wasm file must be accessible from
a URL directly adjacent to it. Your server should provide both files:
https://your-hosted-asset-url.com/widget.js
https://your-hosted-asset-url.com/re_viewer_bg.wasm
The rerun_notebook
package has a minimal server that can be used to serve the assets manually by running:
python -m rerun_notebook serve
However, any hosting platform can be used to serve the assets, as long as it is accessible to the notebook
and has appropriate CORS headers set. See: asset_server.py
for a simple example.
Use Pixi:
# install rerun-sdk from source with the "notebook" extra
pixi run -e examples py-build-notebook
# run jupyter
pixi run -e examples jupyter notebook
Run the pixi run py-build-notebook
build command any time you make changes to the Viewer or TypeScript code.
Changing python code only requires restarting the Jupyter kernel.
FAQs
Implementation helper for running rerun-sdk in notebooks
We found that rerun-notebook demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.