Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
prasunanand committed Dec 22, 2024
1 parent ba0aa74 commit 3fe0b9e
Showing 1 changed file with 25 additions and 10 deletions.
35 changes: 25 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<img src="./logo.svg" alt="Zasper">
</p>
<p align="center">
⚡ High Performance IDE 🚀 Powered by AI 🐥 Inspired by Jupyter
⚡ High Performance IDE 🚀 Massive concurrency 🐥 Inspired by Jupyter
</p>

<p align=center>
Expand All @@ -22,17 +22,25 @@
<img src="./screenshots/intro.gif"/>
</p>


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's perfectly suited for running REPL-style data applications, with Jupyter notebooks being one example.

Currently Zasper is supported on Linux and Mac.


# Why I built Zasper ?

A lot of properietary JupyterLab - like frontend software (Databricks Notebooks, Deepnote Notebooks) are there in the market. But none of them are free and opensource. Also most of them force you to use them in the cloud. Even the modest personal computers these days have atleast 8 GBs of RAM, 8 core CPU and a descent GPU with 4 GB RAM. Hence, I decided to build this.
There are several proprietary JupyterLab-like frontend tools available in the market, such as Databricks Notebooks and Deepnote Notebooks. However, none of them are free or open-source, and most require users to work in the cloud. Even the modest personal computers these days are typically equipped with at least 8 GB of RAM, an 8-core CPU, and a decent 4 GB GPU, I saw an opportunity to create a solution that works seamlessly on local machines. That’s why I decided to build Zasper which can effectively utilize the resources available and guarantee maximum efficiency.

Originally I wrote https://github.com/zasper-io/zasper_py(now in Private mode) to build a new frontend around Jupyter. During the process I realized, Go is the ideal choice to rebuild the Jupyter project. Go has excellent support for REST, RPC, WS protocols. Concurrency and Performance are the areas where Go shines.
Originally I wrote https://github.com/zasper-io/zasper_py (now in Private mode) to build a new frontend around Jupyter. During the process I realized, Go is the ideal choice to rebuild the Jupyter project. Go has excellent support for REST, RPC, WS protocols. Concurrency and Performance are the areas where Go shines.

Go's Concurrency: Better suited for applications requiring both concurrency and parallelism, as it leverages multiple cores effectively. It's easier to handle blocking operations without freezing the system.

Python's Event Loop: Ideal for I/O-bound applications that need to handle a lot of asynchronous tasks without blocking. However, it struggles with CPU-bound tasks and lacks native parallelism unless additional worker threads are used.

Hence the Go version of Zasper was born! Currently Zasper is supported on Linux and Mac.
Hence the Go version of Zasper was born!


## 📷 Screenshots
Expand Down Expand Up @@ -86,7 +94,7 @@ brew install zeromq
Go to project home and start the server

```bash
go build -o ui/public/zasper app.go
go build -o ui/public/zasper
```

Go to `ui` and run the app in dev mode
Expand Down Expand Up @@ -174,7 +182,7 @@ on Windows: %USERPROFILE%\AppData\Roaming\zasper\logs\main.log

# Wiki

For Zasper architecture, timeline, and other info refer [wiki](https://github.com/zasper-io/zasper/wiki).
For Zasper architecture, and other info refer [wiki](https://github.com/zasper-io/zasper/wiki).

# Contributing

Expand All @@ -187,11 +195,18 @@ You can contribute in multiple ways:

See [Code of conduct](./CODE_OF_CONDUCT.md)

# TODOs
# Roadmap

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.

# Acknowledgements

* Design a Plugin System
* Implement Language Server Protocol (LSP)
* Implement Linters and Compilers
I acknowledge the Jupyter and Pydata community for building a great Interactive computing environment.

# Copyright

Expand Down

0 comments on commit 3fe0b9e

Please sign in to comment.