EvaNotebook is a computational notebook specifically designed to operate solely within a browser environment, without the need for a client-server architecture. Its design lends itself to the development of prototypes, experimental processes, and system scenarios with a main emphasis on multilingual programming for event-driven architectures. It achieves this with the assistance of a decentralized database and incorporates various application protocols, including WebRTC, WebSockets, and MQTT, providing a higher level of abstraction.
🌐 Demo Link:
🔥 Key Features:
-
User-friendly WYSIWYG interface inspired by Notion (EditorJS)
-
Since real applications are reactive ones rather than static ones, so it offers simplified APIs for MQTT, WebRTC, HTTP, and WebSocket protocols based on RxJS.
-
Independent web workers for enhanced performance and stability
-
Secure P2P collaboration with custom replication (RxDB and libp2p) but offline first
-
Reactive elements like reactive charts, forms, and notebook itself. You can use them with LangChain.
🗺️ Roadmap:
- Implement Bluetooth, gRPC, GraphQL and SSH protocols. Call your operating system from a browser should be possible securely.
- Bypass transparently CORS restrictions.
- Integrate Langchain to control whatever environment you want (including the notebook itself) in real-time using the different protocols and languages provided by libp2p. Integrate offline large models such as WebGPT.
- Built-in open source alternatives to commercial AI products.
- Jupyter Notebook format complaint.
Credits WebGPT.
- Examples
- Code
- IPFS Branch
- GitHub Page (Default)
- Isolate notebook (Firebase)
- CID: QmVcZLrzGPrw6Yv9SfchPvHUaU2ZA6zzrSZPy2FZysZp7x
- Fleek
- Firebase 1
- Firebase 2
- Firebase 3
- WebContainer 1
- WebContainer 2
- Ernesto's Fork
- About
This project was generated with Angular CLI version 15.1.5.
Run npm run start
for a dev server. Navigate to http://localhost:4200/
. The application will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.
"Archivo:Edit icon (the Noun Project 30184).svg - Wikipedia, la enciclopedia libre." 15 Mar. 2023, es.m.wikipedia.org/wiki/Archivo:Edit_icon_%28the_Noun_Project_30184%29.svg. Based on these projects. https://github.com/alangpierce/sucrase https://github.com/binji/wasm-clang https://babeljs.io/docs/en/babel-standalone https://infinitexyy.github.io/playcode/