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.
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:
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
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
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!
- nirum-python: The official Python
runtime library for Nirum.
- nirim-python-http: Nirum HTTP transport for Python.
- nirum-python-wsgi: Adapt Nirum services to WSGI apps.
- nirum.tmbundle: TextMate bundle for Nirum. Also can be used by IntelliJ IDEA (or any other JetBrain's IDEs, e.g., PyCharm, WebStorm) through TextMate bundles support.
- nirum.vim: Nirum syntax highlighter for Vim/Neovim.
- sublime-nirum: Nirum package for Sublime Text 3.
니름 (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 (이영도).