Nirum: IDL compiler and RPC/distributed object framework for microservices
Haskell Python Shell
Switch branches/tags
Nothing to show
Latest commit 42ef125 Sep 17, 2017 @dahlia dahlia committed on GitHub Merge pull request #182 from dahlia/readme
Link nirum.tmbundle
Permalink
Failed to load latest commit information.
app Docs about external dependencies Aug 21, 2017
docs
examples Union tag docs now can be in parentheses Jul 22, 2017
src/Nirum
test Add license field to package metadata Aug 29, 2017
.dockerignore Ignore irrelative files Aug 17, 2016
.gitignore Test on Bitbucket Pipelines Aug 17, 2017
.travis.yml Fix build broken due to Python's zipfile bug Sep 16, 2017
CONTRIBUTING.md typo Aug 23, 2017
Dockerfile Copy binary to PATH Jul 25, 2017
LICENSE Initial commit --- working in progress May 10, 2016
Main.hs Command line interface May 10, 2016
README.md Link nirum.tmbundle Sep 15, 2017
Setup.hs Initial commit --- working in progress May 10, 2016
appveyor.yml Integrate target tests into a test suite for Stack Aug 17, 2017
bitbucket-pipelines.yml Test on Bitbucket Pipelines Aug 17, 2017
docker-entrypoint.sh More descriptive help for Nirum in Docker Aug 17, 2016
lint.sh
package.yaml Integrate target tests into a test suite for Stack Aug 17, 2017
stack.yaml
tox.ini Make Python target to generate client w/ transport Jul 6, 2017

README.md

Nirum

Build Status (Travis CI) Build Status (AppVeyor) Docker Automated Build Total lines of code Gitter codecov

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 -t python -o out/ examples/

For more infomration, use --help option:

$ nirum --help
Nirum: The IDL compiler and RPC/distributed object framework

Usage: nirum [-v|--version] (-o|--output-dir DIR) (-t|--target TARGET) DIR
  Nirum compiler 0.3.0

Available options:
  -h,--help                Show this help text
  -v,--version             Show version
  -o,--output-dir DIR      Output directory
  -t,--target TARGET       Target language name. Available: docs, python
  DIR                      Package directory

Building

If you already installed Haskell Stack, you can build the project in the same way to build other Haskell softwares:

$ stack build

You can run the test suite of Nirum:

$ stack test  # unit test for compiler
$ ./lint.sh   # style lint

Related projects & tools

See also the list of Nirum-related projects on GitHub. Have you kicked off a new project related to Nirum? Please add nirum topic to your project on GitHub!

Language runtimes

Editor supports

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 (이영도).