GithubHelp home page GithubHelp logo

isabella232 / jupyter-datastore Goto Github PK

View Code? Open in Web Editor NEW

This project forked from quansight/jupyter-datastore

0.0 0.0 0.0 206 KB

tmp repo to coordinate plan around jupyter datastore

TypeScript 58.89% Python 41.11%

jupyter-datastore's Introduction

JupyterLab Real Time Collaboration Plan!

Comparison

Our current approach is to handle all communication on the clients. Alternatively, here we propse having a server side datastore peer that handles keeping the models up to date from the Jupyter server. It expose REST API endpoints to trigger actions on the server, that are similar to the existing kernel endpoints, except instead of returning the state they update the RTC models. They also expose many of the kernel websocket methods as REST calls.

Why?

  • Keep models updated when clients are closed.
  • Reduce complexity on the clients.
  • Works with existing infrastructure, i.e. Jupyter Server; doesn't disrupt old way to interact with server (can be run side-by-side).
  • Single source of truth datastore on the server.
  • Similar REST API to existing Jupyter Server REST API โ€” less work for clients to switch to RTC.

  • jupyterlab/jupyter-datastore API spec
    • kernelspecs
    • status
    • terminals
    • kernels
    • sessions
    • contents
    • config (Maybe we dont need this?)
    • Rewrite to clone existing API more closely
    • Add REST endpoints for execution with cell ID
    • Add a table for kernel executions (for consoles)
    • Deal with request_input, either in websockets or CRDT.
    • Spec out websockets for comms
    • Add config for refresh
  • Research alternative communication layers
  • jupyterlab/lumino-datastore API spec
    • Create API spec based on Vidar's work
  • Look into ORM on top of tables, using Ian's work
  • Think about undo/redo behavior!
  • Think about users and permissioning!

jupyterlab/lumino-datastore

Includes client and server side components for synchronized CRDTs in the browser.

jupyterlab/jupyter-datastore

The Jupyter Datastore package gives you an up to date data model of the Jupyter Server data structures in your browser. It also provides an interface to take actions on the Jupyter Server.

It is meant to be a building block for any Jupyter web UIs.

Goals:

  • Save notebook outputs even when client is closed
  • Add undo/redo
  • Sync models between browser windows

RTC models in ./spec.ts

API spec in main.py, translated to OpenAPI spec in spec.json which will be implemented in Node.

https://jupyter-client.readthedocs.io/en/stable/messaging.html

http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#/contents/post_api_contents__path_

https://github.com/jupyter/jupyter/wiki/Jupyter-Notebook-Server-API

Generating spec:

python main.py > spec.json

jupyter-datastore's People

Contributors

saulshanabrook avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.