IDL compiler and RPC/distributed object framework for microservices
Haskell Python Shell
Latest commit 2527e07 Nov 24, 2016 @admire93 admire93 committed on GitHub Support Python2 targets!! (#85)
* Compile python package based on version

* Merge kroisse's commit

* Make can be built

* Move python verison specific codes

* Move python related test in python file

* Rename pythontest.sh to test.sh

- Use `set -e`
- Remove useless semicolon
- Don't use `&&`

* Use QuasiQuote instead of cons&snoc combi

* typing._type_repr contain module's name

* Show proper typehints

* Implement __ne__ for python2

* Remove useless space

* Install python2 if version lower than 3

* Don't call __eq__ in __ne__

* Show representation properly

* stash

* Use qualified import

* Refactor sourceDirectory

* Rename emptyContext to empty

* Ignore pyc & tox

* Use typeReprCompiler

* Change missing return type annotation

* Test with tox

* Install nirum python runtime from git

* Fix generated Python package to include both src and src-py2

* Fix appveyor & travis

* Package generate MANIFEST.in as well

* Tap deadsnakes for python34,35

* Test metadata with pytest

* Install tox on AppVeyor CI

README.md

Nirum

Build Status (Travis CI) Build Status (AppVeyor) Docker Automated Build Gitter

Nirum is an IDL compiler and RPC/distributed object framework for microservices, built on top of the modern Web server technologies such as RESTful HTTP and JSON.

You can find how its IDL looks like from source codes in the examples/ directory.

Note that its design is highly unstable and could be changed. Also the feature set is incomplete yet.

Nightly builds

The easiest way to give a try to use Nirum is downloading a nightly build. We currently provides the prebuilt binaries of the following platforms:

Getting started

In order to compile a Nirum package (examples/) to a Python package:

$ mkdir out/  # directory to place generated Python files
$ nirum -o out/ examples/

For more infomration, use --help option:

$ nirum --help
Nirum Compiler 0.3.0

nirum [OPTIONS] DIR

Common flags:
  -o --output-dir=DIR   The directory to place object files
  -? --help             Display help message
  -V --version          Print version information
     --numeric-version  Print just the version number

Building

If you already installed Haskell Platform or Haskell Stack, you can build the project in the same way to build other Haskell projects.

Using Haskell Stack:

$ stack build

Using vanilla Cabal:

$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal configure
$ cabal build

You can run the test suite of Nirum:

$ stack test  # using Hasekll Stack
$ cabal test  # using Haskell Platform
$ ./lint.sh   # run style lint as well

Etymology

니름 (IPA: /niɾɯm/; nireum) is a sort of telepathy in the fictional world of The Bird That Drinks Tears (눈물을 마시는 새 Nunmureul masineun sae) by Lee Yeongdo (이영도).