Hydrogen
Hydrogen is an interactive coding environment that supports Python, R, JavaScript and other Jupyter kernels.
Checkout our Documentation and Medium blog post to see what you can do with Hydrogen.
Contents
- Background
- Features
- Plugins for Hydrogen
- Useful external packages
- How it works
- Why "Hydrogen"?
- Contributing
- Changelog
- License
Background
Hydrogen was inspired by Bret Victor's ideas about the power of instantaneous feedback and the design of Light Table. Running code inline and in real time is a more natural way to develop. By bringing the interactive style of Light Table to the rock-solid usability of Atom, Hydrogen makes it easy to write code the way you want to.
You also may be interested in our latest project – nteract – a desktop application that wraps up the best of the web based Jupyter notebook.
Features
- execute a line, selection, or block at a time
- rich media support for plots, images, and video
- watch expressions let you keep track of variables and re-run snippets after every change
- completions from the running kernel, just like autocomplete in the Chrome dev tools
- code can be inspected to show useful information provided by the running kernel
- one kernel per language (so you can run snippets from several files, all in the same namespace)
- interrupt or restart the kernel if anything goes wrong
- use a custom kernel connection (for example to run code inside Docker), read more in the "Custom kernel connection (inside Docker)" section
Documentation
Plugins for Hydrogen
Hydrogen has support for plugins. Feel free to add your own to the list:
- Hydrogen Launcher: launches terminals and Jupyter consoles connected to Hydrogen
- hydrogen-python: provides various Python-specific features
- Data Explorer: allows you to use nteract data-explorer within Hydrogen
If you are interested in building a plugin take a look at our plugin API documentation.
Useful external packages
Here is a list of external packages that could be useful when using Hydrogen (without using Hydrogen plugin API, as such they're mostly only related to the UIs):
- markdown-cell-highlight: highlights code cells in markdown files
- Cell Navigation: enables easy jumps between Hydrogen code cells
- Hydrogen Cell Separator: gives simple horizontal line decorations for Hydrogen code cells
If you find/create a package that you think can be useful when used in combination with Hydrogen, feel free to make a PR and add it.
How it works
Hydrogen implements the messaging protocol for Jupyter. Jupyter (formerly IPython) uses ZeroMQ to connect a client (like Hydrogen) to a running kernel (like IJulia or iTorch). The client sends code to be executed to the kernel, which runs it and sends back results.
Why "Hydrogen"?
Hydrogen atoms make up 90% of Jupiter by volume.
Plus, it was easy to make a logo.
Contributing
Thanks for taking the time to contribute. Take a look at our Contributing Guide to get started.
Then, take a look at any issue labeled good first issue or help wanted that has not been claimed. These are great starting points.
Changelog
Every release is documented on the GitHub Releases page.
License
This project is licensed under the MIT License - see the LICENSE.md file for details