5 ms·
I am the author of Zasper. The unique feature of Zasper is that the Jupyter kernel handling is built with Go coroutines and is far superior to how it's done by
by prasunanand 2y ago
I am the author of Zasper.
The unique feature of Zasper is that the Jupyter kernel handling is built with Go coroutines and is far superior to how it's done by JupyterLab in Python.
Zasper uses one fourth of RAM and one fourth of CPU used by Jupterlab. While Jupyterlab uses around 104.8 MB of RAM and 0.8 CPUs, Zasper uses 26.7 MB of RAM and 0.2 CPUs.
Other features like Search are slow because they are not refined.
I am building it alone fulltime and this is just the first draft. Improvements will come for sure in the near future.
I hope you liked the first draft.
- carreau 2y agoIPython maintainer and Jupyter dev (even if I barely touch frontend stuff these days). Happy to see diversity, keep up the good work and happy new year. Feel free to open issues upstream if you find lack of documentation or issue with protocol. You can also try to reach to jupyter media strategy team, maybe they'll be open to have a blog post about this on blog.jupyter.org
- prasunanand 2y agoThanks @carreau. I think the documentation is amazing! Zasper is built on the great work and documentation from Jupyter team. I will reach out to Jupyter media strategy team.
- BiteCode_dev 2y agoThat's stellar sportmanship right there. Not that jupyter's team needed even more respect from the community but damn.
- carreau 2y agoI think that's fairly normal, having alternative frontends can only be beneficial to the community. I know it also look like there is a single Jupyter team, but the project is quite large, there are a lot of constraints and disagreements internally and there is not way to accomodate all users in the default jupyter install. Alternative are always welcome ; at least if they don't fragment the ecosystem by being not backward compatible with the default. Also to be fair I'm also one of the Jupyter dev that agree with many points of OP, and would have pulled it into a different direction; but regardldess I will still support people wanting to go in a different direction than mine.
- BiteCode_dev 2y agoThe last paragraph let me think your normal is particularly collaborative lol.
- dleeftink 2y ago> Alternative are always welcome; at least if they don't fragment the ecosystem by being not backward compatible with the default. Genuinely curious; what mechanisms has Jupyter introduced to prevent ecosystem fragmentation?
- williamstein 2y agoThe Jupyter community maintains a public spec of the notebook file format [1], the kernel protocol [2], etc. I have been involved with many alternative Jupyter clients, and having these specs combined with a friendly and welcoming community is incredibly helpful!!! [1] https://github.com/jupyter/nbformat https://github.com/jupyter/nbformat [2] https://jupyter-client.readthedocs.io/en/latest/messaging.html https://jupyter-client.readthedocs.io/en/latest/messaging.ht...
- westurner 2y agojupyter-server/enterprise_gateway: https://github.com/jupyter-server/enterprise_gateway https://github.com/jupyter-server/enterprise_gateway JupyterLab supports Lumino and React widgets. Jupyter Notebook was built on jQuery, but Notebook is now forked from JupyterLab and there's NbClassic. Breaking the notebook extension API from Notebook to Lab unfortunately caused re-work for progress, as I recall. jupyter-xeus/xeus is an "Implementation of the Jupyter kernel protocol in C++* https://github.com/jupyter-xeus/xeus https://github.com/jupyter-xeus/xeus jupyter-xeus/xeus-python is a "Jupyter kernel for the Python programming language"* that's also what JupyterLite runs in WASM instead of ipykernel: https://github.com/jupyter-xeus/xeus-python#what-are-the-advantages-of-using-xeus-python-over-ipykernel-ipython-kernel https://github.com/jupyter-xeus/xeus-python#what-are-the-adv... JupyterLite kernels normally run in WASM; which they are compiled to by emscripten / LLVM. To also host WASM kernels in a go process, I just found: going: https://github.com/fizx/goingo https://github.com/fizx/goingo .. https://news.ycombinator.com/item?id=26159440 https://news.ycombinator.com/item?id=26159440 Vscode and vscode.dev support wasm container runtimes now; so the Python kernel runs in WASM runs in a WASM container runs in vscode FWIU. Vscode supports polyglot notebooks that run multiple kernels, like "vatlab/sos-notebook" and "minrk/allthekernels". Defining how to share variables between kernels is the more unsolved part AFAIU. E.g. Arrow has bindings for zero-copy sharing in multiple languages. Cocalc, Zeppelin, Marimo notebook, Data Bricks, Google Colaboratory (Colab tools), and VSCode have different takes on notebooks with I/O in JSON. There is no CDATA in HTML5; so HTML within an HTML based notebook format would need to escape encode binary data in cell output, too. But the notebook format is not a packaging format. So, for reproducibility of (polyglot) notebooks there must also be a requirements.txt or an environment.yml to indicate the version+platform of each dependency in Python and other languages. repo2docker (and repo2podman) build containers by installing packages according to the first requirements .txt or environment.yml it finds according to REES Reproducible Execution Environment Standard. repo2docker includes a recent version of jupyterlab in the container. JupyterLab does not default to HTTPS with an LetsEncrypt self-signed cert but probably should, because Jupyter is a shell that can run commands as the user that owns the Jupyter kernel process. MoSH is another way to run a web-based remote terminal. Jupyter terminal is not built on MoSH Mobile Shell. jupyterlab/jupyter-collaboration for real time collaboration is based on the yjs/yjs CRDT. https://github.com/jupyterlab/jupyter-collaboration https://github.com/jupyterlab/jupyter-collaboration Cocalc's Time Slider tracks revisions to all files in a project; including latex manuscripts (for ArXiV), which - with Computer Modern fonts and two columns - are the typical output of scholarly collaboration on a ScholarlyArticle.
- szvsw 2y agoI’m not adding a lot to the conversation, but it’s not often you run into someone who contributes to creating a tool so fundamental to your daily life, career, growth as a researcher etc, so let me just take the opportunity to say: thank you and the rest of your team for creating such an amazing interactive tool.
- pplonski86 2y agoCongratulations on the launch! It's great to see alternatives to Jupyter. JupyterLab is an excellent, however creating editor for broad audience is challenging. I've found Jupyter difficult to use, especially for beginners. Managing kernels, Python environments, and installing new packages can be quite cumbersome. Are you planning to address these challenges in Zasper?
- prasunanand 2y agoYeah, I will work on these problems and I already have solutions in mind. Just wanted to get the word out about the project first and see if the world actually needs something like Zasper. I am really happy to see the welcoming response from the dev community.
- dist-epoch 2y agoHave you tried the Jupyter desktop app? It's more self-contained.
- pplonski86 2y agoYes, I tried Jupyter Desktop. It is fantastic, I like that you can double click on notebook file to open app. However, it might be a little to complicated for beginners, you need to setup Python and select kernels. That's too much.
- Panoramix 2y agoPeople can program in python but cannot select a kernel from a list? I find that hard to believe
- jerf 2y agoI mean this without rancor or insult, but a lot of data scientists may use Python, but are definitely not Python programmers. They know the subset of Python necessary to process data, and literally not one bit more. They would have no idea how to create an iterator function, their own "with" handler, may not even know how to create a new subclass with a method. They just take data in, chew on it, and spit it out. Again, not an insult intended to them. They have their job and they do it, and I don't know much about their world either, after all. And of course you can find some data scientists who also deeply know Python. My point is merely that modeling them all generically as "Python programmers" in your head can lead to a model that makes bad predictions, which I found in my brief stint in that world can include you building tools for them that expect more out of them than they have.
- tudorizer 2y agoOn a quick glance, it seems it's possible to run this as a service similar to JupyterLab, right? I'd be keen to offer it as an alternative to Jupyter on my little GPU platform experiment.
- zelphirkalt 2y agoThe actual RAM issue is another one. Every Python kernel you start consumes around 100-150MB RAM. So unless you are starting different kernels using Zasper, the majority of RAM usage is still going to be the same.
- petre 2y agoDoes it have a Racket kernel yet? I love using Racket for notebooks in Jupyter, but the UI is just too slow.
- klooney 2y agoHow was your experience working with 0mq?
- shwouchk 2y agoHello and thank you for making this! Can I sway you to take this into a ... certain direction? From my POV any browser based editor will be inferior to emacs (and to lesser extent vim) simply because it won't run my elisp code. While a fresh and snappier UI compared to eg jupyter would be nice, I would love to see something that integrates well with emacs out of the box. So, perhaps it would be really nice if the backend+API was really polished as an end product itself in such a way that it could easily interface with other frontends, with remote attachment. I could go on with my list of demands but I would be thrilled and amazed at my luck if even those two happen...
- Demiurge 2y agoDid somebody say eMacs? I dunno, I think VI integration could be more important.
- shwouchk 2y agoI mentioned vim as well and generally proposed something that would be editor agnostic. Shoo! back to your cave.
- zitterbewegung 2y agoThere already is a library that can interface emacs with Juypter it is called ein. I think what you really want is a kernel that executes emacs code and if you did make that kernel it would probably work in any of these systems. See https://github.com/emacs-jupyter/jupyter https://github.com/emacs-jupyter/jupyter
- shwouchk 2y agoYes, I'm aware of EIN. To start, it's been abandoned by it's author/maintainer as of April 2024 IIRC. Further, I do not need a kernel to execute emacs code - I have one and it's called emacs. The point regarding executing elisp code was a cheeky way to state that I am not looking forward to finding replacement and/or porting of all the custom code - mine and others' - that my editor runs, and that no amount of "features" from a webui editor will ever replace that. Hence I also mentioned vim since over time it got customized for me as well and I wouldn't want to port that either. Nor the convenience of the terminal, which is what vim is for. Putting that aside as with all respect and gratitude to the author, it was rather clunky in many respects - no interactive story, poor handling of sessions and remote kernels (have you tried to start one, disconnect and reconnect?), no integration with LSP, and lack of many many more features that /could/ be made. I don't know how much use you make of jupyter kernels or mathematica notebooks or similar technologies, but in my case I explored the available landcape quite thoroughly and regularly revisit. I know what I'm looking for and EIN is/was not it. [EDIT] I just noticed you mentioned EIN but linked to emacs-jupyer. Used that as well, of course. Ill add a bit more detail to that in sibling
- _venkatasg 2y agoJust wanna say this is a really cool project, and I can't think of higher praise than me hoping I build something as cool as this some day! I've been meaning to learn Go for sometime now, and will be referring to Zasper for the future :)
- crabbone 2y agoI'm not directly involved with extending Jupyter Lab, but I'm involved with the results (and testing) of our extension on the daily basis. What I find very often to be the source of complaints is the error reporting. In particular, the kind of error reporting that just disappears from the screen after few seconds. If there's one singular feature of Jupyter Lab that I really want changed, it's this.
- filmor 2y agoIt currently hard-codes launching ipykernel, right?
- llm_trw 2y agoI mean, I appreciate the effort, but my average notebook uses gb to tb of ram and vram. At that scale having mb is...