Git Product home page Git Product logo

ammonium's Introduction

ammonium

Modified Ammonite, for big data frameworks and use from jupyter-scala

This repository is a slightly modified Ammonite, aiming at being fine with big data frameworks (currently specific uses of Spark, POC for Flink and Scio), and to be re-used from jupyter-scala. Its goal is to stay merge-compatible with the original Ammonite, so that it can profit from its latest fixes and features - and in the hope that the changes of this repository can be incorporated into it at some point.

The changes added in this repository fall into the following categories:

  • tweak: minor changes to the original Ammonite,
  • lib: aim at making it easier to use Ammonite from other projects (mostly jupyter-scala),
  • fork: specific to this fork, with no relevance for mainline Ammonite,
  • api: changes in the user-facing Ammonite API,
  • serialization: changes to make Ammonite "Java serialization-friendly" (so that Spark, Flink, etc., can serialize things from the REPL).

All commits specific to this repository are tagged with one of these categories.

Support for Spark, POC for Flink and Scio, are in the jupyter-scala repository.

Running it

Ensure coursier is in your path ($ coursier --help should print the version of coursier, among other things). Then download and run the ammonium script of this repository.

Limitations

Test coverage of the added features is rather poor for now.

3 features (4 unit tests) of mainline Ammonite are broken for now:

  • support for macros (because the user code is put in classes here, rather than singletons, for serialization-friendliness),
  • support for cell private fields (like private val n = 2; n + 1, because of putting user code in classes too),
  • support for saving / roll-backing sessions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.