All Projects → netgusto → Nodebook

netgusto / Nodebook

Licence: isc
Nodebook - Multi-Lang Web REPL + CLI Code runner

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects
CSS
56736 projects
Makefile
30231 projects
C#
18002 projects
HTML
75241 projects

Projects that are alternatives of or similar to Nodebook

Ramtuary
Ramda + Ramda Fantasy + Sanctuary REPL 🌿
Stars: ✭ 72 (-95.27%)
Mutual labels:  repl
Kubeplay
kubeplay – a new way to interact with Kubernetes API from your terminal
Stars: ✭ 83 (-94.54%)
Mutual labels:  repl
Repl
REPL rewrite for Node.js ✨🐢🚀✨
Stars: ✭ 101 (-93.36%)
Mutual labels:  repl
Gistlyn
Run Roslyn Gists
Stars: ✭ 75 (-95.07%)
Mutual labels:  repl
Clj Suitable
ClojureScript "IntelliSense" support for JS objects and their properties/methods. Via figwheel and Emacs CIDER.
Stars: ✭ 82 (-94.61%)
Mutual labels:  repl
Rusti
REPL for the Rust programming language
Stars: ✭ 1,316 (-13.48%)
Mutual labels:  repl
Repl
🐚 an instant REPL for any command
Stars: ✭ 71 (-95.33%)
Mutual labels:  repl
Cl Repl
A full-featured repl implementation designed to work with Roswell
Stars: ✭ 106 (-93.03%)
Mutual labels:  repl
Psysh
A REPL for PHP
Stars: ✭ 9,161 (+502.3%)
Mutual labels:  repl
Scalakata2
Interactive Playground
Stars: ✭ 99 (-93.49%)
Mutual labels:  repl
Ultra
A Leiningen plugin for a superior development environment
Stars: ✭ 1,213 (-20.25%)
Mutual labels:  repl
Omnia
Stars: ✭ 81 (-94.67%)
Mutual labels:  repl
Ns Tracker
Library to keep track of changes to Clojure source files
Stars: ✭ 95 (-93.75%)
Mutual labels:  repl
Boot Cljs Repl
Boot task providing a REPL for ClojureScript development.
Stars: ✭ 74 (-95.13%)
Mutual labels:  repl
Kukulcan
A REPL for Apache Kafka
Stars: ✭ 103 (-93.23%)
Mutual labels:  repl
Akilang
A compiler for a simple language, built with Python and LLVM
Stars: ✭ 71 (-95.33%)
Mutual labels:  repl
Evaluate
A version of eval for R that returns more information about what happened
Stars: ✭ 88 (-94.21%)
Mutual labels:  repl
Brain
An esoteric programming language compiler on top of LLVM based on Brainfuck
Stars: ✭ 112 (-92.64%)
Mutual labels:  repl
Endbasic
BASIC environment with a REPL, a web interface, and RPi support written in Rust
Stars: ✭ 106 (-93.03%)
Mutual labels:  repl
Almond
A Scala kernel for Jupyter
Stars: ✭ 1,354 (-10.98%)
Mutual labels:  repl

nodebook

Nodebook - Multi-Language REPL with Web UI + CLI code runner

Useful to practice algorithms and datastructures for coding interviews.

What is it?

Nodebook is an in-browser REPL supporting many programming languages. Code's on the left, Console's on the right. Click "Run" or press Ctrl+Enter or Cmd+Enter to run your code. Code is automatically persisted on the file system.

You can also use Nodebook directly on the command line, running your notebooks upon change.

nodebook

A notebook is a folder containing an {index|main}.{js,py,c,cpp,...} file. The homepage lists all of the available notebooks.

home

Supported environments

  • C11 (.c)
  • C++14 (.cpp)
  • C# (.cs)
  • Clojure (.clj)
  • Elixir (.ex)
  • Fsharp (.fs)
  • Go (.go)
  • Haskell (.hs)
  • Java (.java)
  • NodeJS (.js)
  • Lua (.lua)
  • OCaml (.ml)
  • PHP (.php)
  • Python 3 (.py)
  • R (.r, .R)
  • Ruby (.rb)
  • Rust (.rs) — Uses cargo run if Cargo.toml is present, and rustc otherwise
  • Swift (.swift)
  • TypeScript (.ts)

If --docker is set on the command line, each of these environments will run inside a specific docker container.

Otherwise, the local toolchains will be used.

Install from release

Head to Releases and download the binary built for your system (mac, linux).

Rename it to nodebook and place it in your path.

Install from source

Building requires go.

$ make deps
$ make install
# nodebook should be available under $GOPATH/bin/nodebook or $GOBIN/nodebook

Run with Web UI

# With dockerized toolchains
$ nodebook --docker path/to/notebooks

# With local toolchains
$ nodebook path/to/notebooks

Run on CLI (watch and run mode)

$ nodebook cli --docker path/to/notebooks
# Or
$ nodebook cli path/to/notebooks

Usage

Create a Notebook (Web UI)

Click on the + Notebook button on the Home page, then select the language of the notebook to be created.

Once on the notebook edition page, you can rename the notebook by clicking on it's name.

Notebooks are created in the directory specified by the parameter --notebooks.

Create a Notebook manually (WebUI, CLI)

In the directory where you want your notebooks to be stored, simply create a folder containing a file named {index|main}.{js,py,c,cpp,...}.

The notebook's name will be the name of the folder. The notebook language is determined automatically.

Command line options

  • --docker: Execute code in disposable docker containers instead of local system; defaults to false

Web UI only:

  • --bindaddress: IP address the http server should bind to; defaults to 127.0.0.1
  • --port: Port used by the application; defaults to 8000

Notebook environment

If your notebook dir contains a .env file, the corresponding environment will be set up during notebook execution.

Exemple .env:

HELLO=World!

More information about the expected file format here: https://github.com/motdotla/dotenv#rules

⚠️ A bit of warning ⚠️

Do not run the Web UI on a port open to public traffic! Doing so would allow remote code execution on your machine.

By default, the server binds to 127.0.0.1, which allows connection from the localhost only. You can override the bind address using --bindaddress, but do it only if you know what you're doing.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].