# BeakerX: Beaker extensions for Jupyter
BeakerX is a collection of JVM kernels and interactive widgets for
plotting, tables, autotranslation, and other extensions to Jupyter
Notebook and Jupyter Lab version 1.2.x and 2.x.
Version 2.x of BeakerX improves on the original solution architecture by providing
independent modules that end-users can install to better tune the platform.
The [documentation](https://github.com/twosigma/beakerx/blob/master/StartHere.ipynb)
consists of tutorial notebooks on GitHub
and a [cheatsheet](https://github.com/twosigma/beakerx/blob/master/doc/Cheatsheet.pdf).
BeakerX is the successor to the [Beaker Notebook (source code
archive)](https://github.com/twosigma/beaker-notebook-archive). It
comes from [Two Sigma Open Source](http://opensource.twosigma.com/). Yes we are
[hiring](https://www.twosigma.com/careers).
## How to use
To install BeakerX and all kernels use:
```
conda install -c beakerx beakerx_all
```
To install only part of the solution choose which kernels to install:
```
conda install -c beakerx beakerx_kernel_groovy
conda install -c beakerx beakerx_kernel_java
conda install -c beakerx beakerx_kernel_scala
conda install -c beakerx beakerx_kernel_sql
conda install -c beakerx beakerx_kernel_clojure
conda install -c beakerx beakerx_kernel_kotlin
```
And then install optional packages:
```
conda install -c beakerx beakerx_kernel_autotranslation
conda install -c beakerx beakerx_tabledisplay
conda install -c beakerx beakerx_widgets
```
To install BeakerX extensions inside Jupyter Lab 1.2 use
```
// ensure you have yarn, nodejs and npm installed
conda install -c conda-forge jupyterlab=1.2
conda install -c beakerx beakerx_all
```
To install BeakerX extensions inside Jupyter Lab 2.x use
```
// ensure you have yarn, nodejs and npm installed
conda install -c conda-forge jupyterlab=2
conda install -c beakerx beakerx_all
```
## Features
### JVM kernels with Interactive Plotting:
This feature requires all optional packages.
### Autotranslation from Python to JavaScript and D3
This feature requires beakerx_kernel_autotranslation package.
### Interactive Tables
This feature requires beakerx_tabledisplay package.
## FAQs
See [FAQ.md](FAQ.md).
## Attribution
BeakerX contains and depends on many projects including:
The kernel is originally derived from
[lappsgrid](https://github.com/lappsgrid-incubator/jupyter-groovy-kernel),
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
The table of contents and init cells extensions come from:
IPython-contrib Copyright (c) 2013-2015, IPython-contrib Developers
Scala Copyright (c) 2002-2015 EPFL
Copyright (c) 2011-2015 Typesafe, Inc.
[Guava](https://github.com/google/guava) Copyright (C) 2012 The Guava Authors
[Apache Spark](https://github.com/apache/spark) Copyright (C) 2014 and onwards The Apache Software Foundation.
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