Java JavaScript Python ANTLR Scala CSS Other
Switch branches/tags

README.md

BeakerX: Beaker extensions for Jupyter

Build Status Gitter chat

BeakerX is a collection of JVM kernels with widgets, plotting, tables, autotranslation, and other extensions to the Jupyter Notebook and Jupyter Lab. BeakerX is in alpha, with major features still under development, including incompatible changes without notice.

BeakerX is the successor to the Beaker Notebook (source code archive).

Install

Using conda:

conda install -c beakerx beakerx

Using pip:

pip install beakerx
jupyter nbextension install beakerx --py --sys-prefix
jupyter nbextension enable beakerx --py --sys-prefix

Usage

Start the Jupyter Notebook server: jupyter notebook

Developer Install

Dependencies:

  • yarn
  • conda (any Python 3 environment should be fine, but our documentation assumes conda).
conda create -y -n beakerx python=3.5 jupyter openjdk pandas
source activate beakerx
(cd beakerx; python setup.py install --single-version-externally-managed --record record.txt && python setup.py kernels)

Update after Java change

The kernels are installed to run out of the repo, so just a build should update the java code.

(cd kernel; ./gradlew build)

Note this is currently broken and you need to do a complete rebuild after a java change. See #5739.

Update after JS change

(cd beakerx/js; yarn webpack)

Beaker Notebooks Converter

python -m beakerx.bkr2ipynb *.bkr

Groovy with Interactive Plotting and Table Saw:

screen shot

Autotranslation from Python to JavaScript:

screen shot

Running with Docker

In root project call

(cd kernel; gradle clean)

To build beakerx base image execute

docker build -t beakerx-base -f docker/base/Dockerfile .

To build beakerx image execute

docker build -t beakerx -f docker/Dockerfile .

Now if you would like to start BeakerX execute

docker run -p 8888:8888 beakerx

Contributing

We welcome developers to extend and improve BeakerX in ways that can benefit everyone. In order for us to accept your code or pull request, we need for you to fill out and email back to us a scan of a signed copy of the Contributor License Agreement.

BeakerX uses Google Java style, and all Java code needs unit tests. For JavaScript we use Google JS style with require instead of goog.

Attribution

Beaker contains and depends on many projects including:

The kernel is originally derived from lappsgrid, but has been rewritten in Java and refactored and expanded.

The Java support uses Adrian Witas' org.abstractmeta.toolbox.

ANTLR Copyright (c) 2012 Terence Parr and Sam Harwell

d3 Copyright (c) 2010-2015, Michael Bostock

IPython Copyright (c) 2008-2014, IPython Development Team Copyright (c) 2001-2007, Fernando Perez Copyright (c) 2001, Janko Hauser Copyright (c) 2001, Nathaniel Gray

Julia Copyright (c) 2009-2015: Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors

Scala Copyright (c) 2002-2015 EPFL Copyright (c) 2011-2015 Typesafe, Inc.

H2 database engine This software contains unmodified binary redistributions for H2 database engine (http://www.h2database.com/), which is dual licensed and available under the MPL 2.0 (Mozilla Public License) or under the EPL 1.0 (Eclipse Public License). An original copy of the license agreement can be found at: http://www.h2database.com/html/license.html