-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
141 lines (138 loc) · 8.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html><head><meta charset="utf-8">
<title>Nirum</title>
<meta name="generator" content="Nirum 0.5.0">
<meta name="author" content="Nirum team">
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav><a class="index selected" href="index.html"><strong>Nirum</strong>
</a>
<ul class="manuals toc"><li><a href="docs/annotation.html">Annotations</a>
</li>
<li><a href="docs/package.html">Package</a>
</li>
<li><a href="docs/refactoring.html">Backward Compatible Refactoring</a>
</li>
<li><a href="docs/serialization.html">Serialization format</a>
</li>
<li><a href="docs/transport.html">Transport</a>
</li>
<li><a href="docs/tutorial.html">Step-by-step tutorial</a>
</li>
<li><a href="docs/target/docs.html">Docs target</a>
</li>
<li><a href="docs/target/python.html">Python target</a>
</li>
<li><a href="CHANGES.html">Nirum changelog</a>
</li>
<li><a href="CONTRIBUTING.html">Contirubtion guide</a>
</li>
</ul>
<ul class="modules toc"><li><a href="core/index.html"><code>core</code></code>
— Built-in types</a>
</li>
</ul>
</nav>
<article><h1>Nirum</h1>
<p><a href="https://github.com/nirum-lang/nirum/releases"><img src="https://img.shields.io/github/release/nirum-lang/nirum/all.svg"></a>
<a href="https://hub.docker.com/r/nirumlang/nirum/"><img src="https://img.shields.io/docker/automated/nirumlang/nirum.svg"></a>
<a href="https://travis-ci.com/nirum-lang/nirum"><img src="https://travis-ci.com/nirum-lang/nirum.svg?branch=master"></a>
<a href="https://ci.appveyor.com/project/dahlia/nirum-k5n5y"><img src="https://ci.appveyor.com/api/projects/status/jf9bsrnalcb1xrp0?svg=true"></a>
<a href="https://codecov.io/gh/nirum-lang/nirum"><img src="https://codecov.io/gh/nirum-lang/nirum/branch/master/graph/badge.svg"></a>
<a href="https://github.com/nirum-lang/nirum"><img src="https://tokei.rs/b1/github/nirum-lang/nirum"></a>
<a href="https://gitter.im/spoqa/nirum?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge"><img src="https://badges.gitter.im/spoqa/nirum.svg"></a></p>
<p>Nirum is an <a href="https://en.wikipedia.org/wiki/Interface_description_language">IDL</a> compiler and <a href="https://en.wikipedia.org/wiki/Remote_procedure_call">RPC</a>/<a href="https://en.wikipedia.org/wiki/Distributed_object">distributed object</a> framework
for <a href="https://en.wikipedia.org/wiki/Microservices">microservices</a>, built on top of the modern Web server technologies
such as RESTful HTTP and JSON.</p>
<p>You can find how the language looks like from source codes in the <code>examples/</code>
directory.</p>
<p><strong>Note that its design is highly unstable and could be changed.</strong>
Also the feature set is incomplete yet.</p>
<h2>Installation</h2>
<p>The Nirum compiler works on the most major platforms like Linux, macOS, and
Windows. We provide the prebuilt executable binaries for these three platforms.</p>
<h3>Released builds</h3>
<p>You can download executable binaries for Linux (x86_64), macOS (x86_64), or
Windows (x64) from the <a href="https://github.com/nirum-lang/nirum/releases/latest">latest release note</a>.
You should give it appropriate permissions (e.g., <code>+x</code>) depending on your
platform.</p>
<p>If you look for a previous release, see the <a href="https://github.com/nirum-lang/nirum/releases">list of all releases</a>.</p>
<p>We provide official Docker images as well. You can check the list of
<a href="https://hub.docker.com/r/nirumlang/nirum/tags/">released tags</a>. <em>Note that <code>latest</code> is for a nightly build which
is unstable (see below).</em></p>
<h3>Nightly builds</h3>
<p>Since Nirum is still changing by leaps and bounds, you could want to try
its bleeding edge. We provide nightly builds for this purpose.</p>
<ul>
<li><a href="https://nightly-builds.nirum.org/travis-builds/nirum-linux-x86_64">Linux (x86_64)</a></li>
<li><a href="https://nightly-builds.nirum.org/travis-builds/nirum-darwin-x86_64">macOS (x86_64)</a></li>
<li><a href="https://ci.appveyor.com/api/projects/dahlia/nirum-k5n5y/artifacts/nirum-win-x64.exe?job=Platform%3A%20x64&branch=master">Windows (x64)</a></li>
<li><a href="https://hub.docker.com/r/nirumlang/nirum/">Docker (<code>nirumlang/nirum:latest</code>)</a></li>
</ul>
<p>Although we call it “nightly build,” technically it is not built every night,
but done every merge commit.</p>
<h2>Getting started</h2>
<p>In order to compile a Nirum package (<code>examples/</code>) to a Python package:</p>
<pre><code>$ mkdir out/ # directory to place generated Python files
$ nirum -t python -o out/ examples/
</code></pre>
<p>For more infomration, use <code>--help</code> option:</p>
<pre><code>$ 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.5.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
</code></pre>
<p>There is a <a href="./docs/tutorial.html">step-by-step tutorial</a> as well.</p>
<h2>Building</h2>
<p>If you already installed <a href="https://www.haskellstack.org/">Haskell Stack</a>, you can build the project
in the same way to build other Haskell softwares:</p>
<pre><code>$ stack build
</code></pre>
<p>You can run the test suite of Nirum:</p>
<pre><code>$ stack test # unit test for compiler
$ ./lint.sh # style lint
</code></pre>
<p>For details, please read the <a href="./CONTRIBUTING.html">contribution guide</a>.</p>
<h2>Related projects & tools</h2>
<p>See also the <a href="https://github.com/search?q=topic:nirum+fork:false">list of Nirum-related projects</a> on GitHub.
Have you kicked off a new project related to Nirum? Please add <em>nirum</em>
<a href="https://github.com/blog/2309-introducing-topics">topic</a> to your project on GitHub!</p>
<h3>Language runtimes</h3>
<ul>
<li><a href="https://github.com/nirum-lang/nirum-python">nirum-python</a>: The official
Python runtime library for Nirum.
<ul>
<li><a href="https://github.com/nirum-lang/nirum-python-http">nirum-python-http</a>:
Nirum HTTP transport for Python.</li>
<li><a href="https://github.com/nirum-lang/nirum-python-wsgi">nirum-python-wsgi</a>:
Adapt Nirum services to WSGI apps.</li>
</ul></li>
</ul>
<h3>Editor supports</h3>
<ul>
<li><a href="https://github.com/nirum-lang/nirum.tmbundle">nirum.tmbundle</a>: TextMate
bundle for Nirum.
Also can be used by IntelliJ IDEA (or any other JetBrain’s IDEs, e.g.,
PyCharm, WebStorm) through <a href="https://github.com/nirum-lang/nirum.tmbundle#installation-intellij-idea-pycharm-etc">TextMate bundles support</a>.</li>
<li><a href="https://github.com/nirum-lang/nirum.vim">nirum.vim</a>: Nirum syntax
highlighter for Vim/Neovim.</li>
<li><a href="https://github.com/nirum-lang/sublime-nirum">sublime-nirum</a>: Nirum package
for Sublime Text 3.</li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=Nirum.nirum-syntax-highlighting">nirum-syntax-highlighting</a>
for VS Code: Nirum syntax highlighter for VS Code.</li>
</ul>
<h2>Etymology</h2>
<p><strong>니름</strong> (IPA: /niɾɯm/; <em>nireum</em>) is a sort of telepathy in the fictional world
of <a href="https://en.wikipedia.org/wiki/The_Bird_That_Drinks_Tears">The Bird That Drinks Tears</a> (눈물을 마시는 새 <em>Nunmureul masineun sae</em>)
by <a href="https://en.wikipedia.org/wiki/Lee_Yeongdo">Lee Yeongdo</a> (이영도).</p>
</article>
<div class="github"><a href="https://github.com/nirum-lang/nirum" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a></div>
</body>
</html>