📓 It's an Electron-based Notebook! 📓
Note: this isn't feature complete yet. There will be 🐛s and we're currently lacking a lot of core features like tab completion, and creating new cells.
- Notebook environment to explore and get things done
- Standalone cross-platform desktop application
- Easy install with pre-configured Python3 and JavaScript runtimes
- Grow an ecosystem of tooling to allow others to build their own platforms relying on the Jupyter specifications
The contributors are listed in contributors
nteract uses the C4.1 (Collective Code Construction Contract) process for contributions.
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].
- Full compliance with Jupyter message spec v5
- Full compliance with Notebook format v4
- Follow notebook model operations flow from commutable
- Rely on common interfaces for kernel communication via enchannel's comm spec (Go read it!)
- Mocks for UI can be explored in issues, while design references go in mocks
- React for views (pushing notebook state down into the view)
- Full node, direct to zmq (no running a Python server underneath)
At least for now, we need the python 3 kernel installed when hacking on nteract:
python3 -m pip install ipykernel
python3 -m ipykernel install --user
For all systems, you'll need
Each operating system has their own instruction set. Please read on down to save yourself time.
pkg-config
:brew install pkg-config
- ZeroMQ:
brew install zeromq
- You'll need a compiler! Visual Studio 2013 Community Edition is required to build zmq.node.
- Python (tread on your own or install Anaconda)
After these are installed, you'll likely need to restart your machine (especially after Visual Studio).
For Debian/Ubuntu based variants, you'll need libzmq3-dev
(preferred) or alternatively libzmq-dev
.
For RedHat/CentOS/Fedora based variants, you'll need zeromq
and zeromq-devel
.
Requires node 5.x and npm 3. Join us in the future.
- Fork this repo
- Clone it
git clone https://github.com/nteract/nteract
cd
to where youclone
d itnpm install
npm run start
Assets are compiled via electron-compile directly, no build steps until we make a release. As you hack on components, you can reload directly or pop open the dev console and run location.reload()
. No hot reloading at the moment.
As much as possible, we'd like to get people speaking a common language (which may evolve over time!) for development of nteract components and packages.
Core tech behind the scenes:
- Observables through RxJS
- React
- Redux (Note: architecture basis, common communication - we're not using Redux itself)
- Jupyter Messaging
- ZeroMQ
These are our suggested tutorials and background to help you get up to speed:
Depending on where you plug yourself in, you may find the introduction to Reactive programming is the biggest help.
If you'd like to experiment with the core Jupyter messaging and Observables without working with React, check out ick, an interactive console.
Post in Slack if you need help with these or have questions. Several people are working through tutorials right now and would love a study group! If you have trouble creating an account, either email [email protected] or post an issue on GitHub.
I did: "$ npm install", and I got: "Authorization service failure : @reactivex/rxjs"
- Try
$ npm login
then$ npm install
- Try
$ npm install @reactivex/rxjs; npm install;
- Try
$ npm install @reactivex/[email protected]; npm install;
I did: "$ npm install" then "$ npm start", and I got: "no such file or directory, open '.../node_modules/electron-prebuilt/path.txt'"
- Try
$ npm install electron-prebuilt