⚡ High Performance IDE 🚀 Massive concurrency 🐥 Inspired by Jupyter
Zasper is an IDE designed from the ground up to support massive concurrency. It provides a minimal memory footprint, exceptional speed, and the ability to handle numerous concurrent connections.
It implements Jupyter's wire protocol and can efficiently run Jupyter Notebooks.
✅ Fully supported: macOS & Linux
How is Zasper better than JupyterLab ?
- Up to 5X Less CPU usage
- Up to 40X Less RAM usage
- Higher throughput
- Lower latency
- Highly resilient under very high loads
Benchmark comparision report can be accessed here.
- Python Kernels
- Conda environments
- R kernels (iR)
- Julia Kernels (iJulia)
- Ruby kernels (iRuby)
- Javascript kernels (Deno)
- Go Kernels (GoNb)
- Compatible with all Jupyter kernels
- Also works with UV. See the section on "Working with conda environments".
Zasper comes in two flavours:
- Web App
- Desktop App
Web App is available as Homebrew , snap and conda package.
brew install zasper-io/tap/zasper
sudo snap install zasper
conda install zasper -c conda-forge
Visit our downloads page
Or directly install from releases.
Current release version: v0.2.0-beta
OS | Web App | Desktop App |
---|---|---|
Mac 🍏 Silicon | ✅ | ✅ |
Mac AMD 64 | ✅ | ✅ |
Debian AMD 64 | ✅ | ✅ |
Debian ARM 64 | ✅ | ✅ |
Debian i386 | ✅ | ✅ |
Redhat AMD 64 | ✅ | ❌ |
Redhat ARM 64 | ✅ | ❌ |
Redhat i386 | ✅ | ❌ |
Windows AMD 64 | ✅ | ❌ |
Windows ARM 64 | ✅ | ✅ |
Windows i386 | ✅ | ❌ |
The missing distributions will be out soon.
Just launch Zasper from launcher.
Once you have the webapp installed, Go to any directory you want to serve and run zasper
. This starts zasper server in the directory.
prasunanand@Prasuns-Mac-mini example % zasper
==========================================================
███████╗ █████╗ ███████╗██████╗ ███████╗██████╗
╚══███╔╝██╔══██╗██╔════╝██╔══██╗██╔════╝██╔══██╗
███╔╝ ███████║███████╗██████╔╝█████╗ ██████╔╝
███╔╝ ██╔══██║╚════██║██╔═══╝ ██╔══╝ ██╔══██╗
███████╗██║ ██║███████║██║ ███████╗██║ ██║
╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚══════╝╚═╝ ╚═╝
Zasper Server
Version: 0.1.0-alpha
----------------------------------------------------------
✅ Server started successfully!
📡 Listening on: http://localhost:8048
🖥️ Webapp available at: http://localhost:8048
🔒 Protected Mode: disabled
==========================================================
Go to http://localhost:8048
To host your own instance of Zasper, follow these steps:
Run Zasper with the --protected=true flag to enable authentication:
prasunanand@Prasuns-Mac-mini example % zasper --protected=true
==========================================================
███████╗ █████╗ ███████╗██████╗ ███████╗██████╗
╚══███╔╝██╔══██╗██╔════╝██╔══██╗██╔════╝██╔══██╗
███╔╝ ███████║███████╗██████╔╝█████╗ ██████╔╝
███╔╝ ██╔══██║╚════██║██╔═══╝ ██╔══╝ ██╔══██╗
███████╗██║ ██║███████║██║ ███████╗██║ ██║
╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚══════╝╚═╝ ╚═╝
Zasper Server
Version: 0.1.0-alpha
----------------------------------------------------------
✅ Server started successfully!
📡 Listening on: http://localhost:8048
🖥️ Webapp available at: http://localhost:8048
🔒 Protected Mode: enabled
🔐 Server Access Token: 14be1b674a3b9196a82c01129028d0dd
==========================================================
Once the server starts, visit: http://localhost:8048. It will redirect you to a login page.
Copy the Server Access Token
displayed in the console output when the server starts.
Paste it into the login page to authenticate and access the app.
Please ensure you have jupyter kernels installed.
prasunanand@Prasuns-Laptop examples % jupyter kernelspec list
Available kernels:
deno /Users/prasunanand/Library/Jupyter/kernels/deno
firstenv /Users/prasunanand/Library/Jupyter/kernels/firstenv
gonb /Users/prasunanand/Library/Jupyter/kernels/gonb
ir /Users/prasunanand/Library/Jupyter/kernels/ir
julia-1.11 /Users/prasunanand/Library/Jupyter/kernels/julia-1.11
ruby3 /Users/prasunanand/Library/Jupyter/kernels/ruby3
python3 /Users/prasunanand/Library/Python/3.9/share/jupyter/kernels/python3
The simplest way to install a Python 3 Jupyter kernel is
pip install ipykernel
or
pip install jupyter
Create an environment.
conda create --name torchEnv
Activate the environment.
conda activate torchEnv
Install the necessary packages and ipykernel
conda install -c anaconda ipykernel
Create kernelspec
file and you are done! 🚀
python -m ipykernel install --user --name=torchEnv
Create a project.
uv init exampleUV
cd exampleUV
uv run main.py # This creates a .venv directory
Activate the environment.
source .venv/bin/activate
Install the necessary packages and ipykernel
uv pip install ipykernel
Create kernelspec
file and you are done! 🚀
uv run python -m ipykernel install --user --name=exampleUV
Download zasper
from Github and initialize the dependencies.
git clone https://github.com/zasper-io/zasper
cd zasper
make init
make webapp-install
This will create a binary zasper
and add it to your go executables directory. Make sure you have go executables on your path.
Run zasper in any directory to see if the installation was done correctly.
prasunanand@Prasuns-Laptop example % zasper --help
Usage of zasper:
-cwd string
base directory of project (default ".")
-debug
sets log level to debug
-port string
port to start the server on (default ":8048")
-protected
enable protected mode
make electron-package-mac # on macOS
make electron-package-linux # on Linux
This creates zasper-0.1.0-arm64.dmg
(macOS) and zasper_0.1.0_arm64.deb
(Debian) installer.
prasunanand@Prasuns-Laptop zasper % ls -l ui/dist
total 626360
-rw-r--r-- 1 prasunanand staff 1713 Feb 21 10:31 builder-debug.yml
-rw-r--r-- 1 prasunanand staff 353 Feb 21 10:29 builder-effective-config.yaml
drwxr-xr-x 21 prasunanand staff 672 Feb 21 10:30 linux-arm64-unpacked
drwxr-xr-x 3 prasunanand staff 96 Feb 21 10:29 mac-arm64
-rw-r--r--@ 1 prasunanand staff 196642562 Feb 21 10:30 zasper-0.1.0-arm64.dmg
-rw-r--r-- 1 prasunanand staff 204747 Feb 21 10:30 zasper-0.1.0-arm64.dmg.blockmap
-rw-r--r-- 1 prasunanand staff 119088602 Feb 21 10:31 zasper_0.1.0_arm64.deb
Install zasper-0.1.0-arm64.dmg
to your machine.
By default, the application writes logs to the following locations:
on Linux: ~/.config/zasper/logs/main.log
on macOS: ~/Library/Logs/zasper/main.log
on Windows: %USERPROFILE%\AppData\Roaming\zasper\logs\main.log
Data Scientists and AI Engineers spend most of their time running Notebooks on IDEs and hence need a robust ecosystem. Zasper aspires to be a full fledged IDE and the future development will be along making it more efficient by:
- Allowing custom data apps support rather than just Jupyter Notebooks.
- Easier integration with the existing tools.
- Zasper Hub for Self Hosted deployment in the cloud.
If you like Zasper and want to support me in my mission, please consider sponsoring me on GitHub.
A few months ago I received a grant to help me building Zasper.
Join Zasper Community on Slack
You can contribute in multiple ways:
- Documentation
- Bug Filing
- Submitting PRs or reviewing them
See Code of conduct
Zasper would not exist without the incredible work of the Jupyter community. Zasper uses the Jupyter wire protocol and draws inspiration from its architecture. Deep thanks to all Jupyter contributors for laying the groundwork. Data Science Notebooks would not have existed without them.
Prasun Anand
Zasper is licensed under AGPL-3.0 license.