This project is under active development and it has no stable release yet.
- General
- Dockerization
- Use json-rpc on top of socket.io instead of only events
- Publish on dockerhub
- Publish server on npm
- Write better readme
- Write documentation
- Write some typescript declarations for packages
- Authentication
- Notebook Auto-save
- Notebook Auto-backup
- Notebook versioning / checkpoints
- SSR for notebook renderers
- Service worker for cache and handling offline
- Add more examples
- Use linux namespaces (or docker) for runtime isolation
- File explorer
- File navigation
- Open notebook from file explorer
- Filesystem CRUD
- Notebook editor
- Code editor using Microsoft Monaco Editor
- Visualization mode
- Show runtime resource usage
- Hotkeys for saving and running block
- Allow user to reload runtime
- Allow user to run garbage collector on runtime process
- Allow user to disable edition (Lock Block)
- Allow user to disable cache for a block
- Allow user to mark block as visible in visualization mode
- Allow user to mark block for running out of the main block context
- Print button
- Show timings for blocks
- Show code suggestions and docs considering context and installed packages
- Stop button
- Cache renderer assets
- Show runtime log
- Repl mode
- Locked editor mode (lock full view)
- Allow user to move blocks (reorder)
- Allow user to mark block as disabled (runtime should not run that block)
- Notebook runtime
- Allow top-level await on blocks
- Block level cache
- Block level error handling
- Register block timings
- Install npm packages from block
- Require npm packages and js/json files from block
- Programmatically stop execution
- Programmatically skip block execution
- Add functionality to export block results to the frontend
- Store and provide secrets
- Skip disabled blocks
- Block level logging
- Block breakpoints and debugging
- Secure access to filesystem
- Packages
- @nbook/core (runtime)
- @nbook/md (markdown renderer)
- @nbook/plot (chart.js data renderer)
- @nbook/table (data table renderer)
- @nbook/request (synchronic requests for nbook)
- @nbook/result (move from @nbook/core)
- @nbook/dev (toolkit for nbook package development)
- @nbook/p5 (processing.js renderer)
- Examples
- Install packages from block
- Results
- Secrets
- @nbook/request
- @nbook/plot
- @nbook/md
- @nbook/table
- mongodb connection
- mysql connection
- google spreadsheets connection
- access filesystem