_,-/"---, ;""""""""""; _`;; "" «@`---v ; ::::: :: "' _` ;; " _.../ ;" ;; ;;; '",-`:: ;;,'"""" ;" ;;;;. ;; ;;; ::` ____ ,/ / ;; ;;;______;;; ;;; ::,` / __/_____ _ ( )__ __ /;; _;; ;;; ; ; / _//`__/ ' \/ /`_ \/ -) | :/ / ,;' ;_ "")/ /___/_/ /_/_/_/_/_//_/\__/ ; ; / /"""= \;;\\""= ;"""';\::""""""= \\"""= \/"""
Ermine is a programming language, derived from Haskell, executing on the JVM. It was originally designed for creating interesting reports from relational data. It's based on the idea that advanced type systems can be used to guide users towards the features of software they're interested in for many different contexts. Its key enhancement over Haskell is its relational rowtype system.
This distribution includes several components:
- A type checker and interpreter for Ermine, built in Scala,
- An Ermine standard library,
- A relational database model and SQL generator, with API and extra tools in Ermine,
- An API for creating visual reports from relational data, with charts and graphs, for both authoring in Ermine and output engines in Scala,
- A collection of JavaFX utilities,
- An experimental type-aware text editor for Ermine source code.
The output engines that display and export reports are part of a
separate distribution, ermine-writers. Unlike this distribution,
that project has more complex licensing considerations, so be sure to
check out its
LICENSE.md before doing anything important with it.
We have two main development branches, not just one:
default. Check the wiki for details, and advice on
which to base your contribution on.
Also, this project is developed in sync with Ermine Writers. Any changes to this one might require coordinated changes to that one.
Talk to us
Ermine is a big project, and the developers have a wealth of knowledge about how various parts of it work. Join #ermine on irc.freenode.net to chat with the developers. Leave us a bug report if you have a more formal or detailed question.
Thank you to all contributors to Ermine Scala, most of whom are listed
CONTRIBUTORS.md in the distribution. Further details of their
contributions are listed on the wiki.
The Ermine Scala project was started and continues to be developed at McGraw Hill Financial.
Basically, Ermine Scala is licensed under the 2-clause BSD license, a
free and open source license; see
COPYING. Full details of the
licensing of this distribution are in