nirum: IDL compiler and RPC/distributed object framework for microservices

[ gpl, language, library, program ] [ Propose Tags ]

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 the language looks like from source codes in the examples/ directory. See also README.md for more details.


[Skip to Readme]

Modules

  • Nirum
    • Nirum.Cli
    • Nirum.CodeBuilder
    • Nirum.CodeGen
    • Nirum.Constructs
      • Nirum.Constructs.Annotation
        • Nirum.Constructs.Annotation.Internal
      • Nirum.Constructs.Declaration
      • Nirum.Constructs.DeclarationSet
      • Nirum.Constructs.Docs
      • Nirum.Constructs.Identifier
      • Nirum.Constructs.Module
      • Nirum.Constructs.ModulePath
      • Nirum.Constructs.Name
      • Nirum.Constructs.Service
      • Nirum.Constructs.TypeDeclaration
      • Nirum.Constructs.TypeExpression
    • Nirum.Docs
      • Nirum.Docs.Html
      • Nirum.Docs.ReStructuredText
    • Nirum.Package
      • Nirum.Package.Metadata
      • Nirum.Package.ModuleSet
    • Nirum.Parser
    • Nirum.Targets
      • Nirum.Targets.Docs
      • Nirum.Targets.List
      • Nirum.Targets.Python
    • TypeInstance
      • Nirum.TypeInstance.BoundModule
    • Nirum.Version

Flags

Manual Flags

NameDescriptionDefault
static

Static link

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0, 0.2.0, 0.3.0, 0.3.2, 0.3.3, 0.4.0, 0.4.1, 0.4.2, 0.5.0
Change log CHANGES.md
Dependencies base (>=4.7 && <5), blaze-html (>=0.9.0.1 && <0.10), blaze-markup (>=0.8.0.0 && <0.9), bytestring, cmark (>=0.5 && <0.6), containers (>=0.5.6.2 && <0.6), directory (>=1.2.5 && <1.4), email-validate (>=2.0.0 && <3.0.0), filepath (>=1.4 && <1.5), fsnotify (>=0.2.1 && <0.3.0), heterocephalus (>=1.0.5 && <1.1.0), htoml (>=1.0.0.0 && <1.1.0.0), interpolatedstring-perl6 (>=1.0.0 && <1.1.0), megaparsec (>=5 && <5.4), mtl (>=2.2.1 && <3), nirum, optparse-applicative (>=0.13.1 && <0.14), parsec, pretty (>=1.1.3 && <2), semver (>=0.3.0 && <1.0), shakespeare (>=2.0.12 && <2.1), stm (>=2.4.4.1), template-haskell (>=2.11 && <3), text (>=0.9.1.0 && <1.3), unordered-containers, uri (>=0.1 && <1.0) [details]
License GPL-3.0-only
Copyright (c) 2016–2018 Nirum team
Author Nirum team
Maintainer Nirum team
Category Language
Home page http://nirum.org/
Bug tracker https://github.com/spoqa/nirum/issues
Source repo head: git clone git@github.com/spoqa/nirum.git
Uploaded by hongminhee at 2018-02-17T19:34:55Z
Distributions
Executables nirum
Downloads 4204 total (22 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2018-02-17 [all 3 reports]

Readme for nirum-0.3.0

[back to package description]

Nirum

The latest release on GitHub Docker automated build Build status on Linux and macOS (Travis CI) Build status on Windows (AppVeyor) Test coverage (codecov) Total lines of code 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 the language 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

There is a step-by-step tutorial as well.

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

For details, please read the contribution guide.

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