-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
159 lines (143 loc) · 8.25 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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="" />
<meta name="author" content="Maxim Sokhatsky" />
<title>O7 ECO</title>
<link rel="stylesheet" href="https://synrc.space/synrc.css?v=3" />
</head>
<body>
<nav>
<a href='https://github.com/o7'>O7</a>
<a href='https://mqtt.n2o.space'>N2O</a>
<a href='https://kvx.n2o.space'>KVX</a>
<a href='https://mad.n2o.space'>MAD</a>
<a href='https://bpe.n2o.space'>BPE</a>
</nav>
<header>
<a href="https://synrc.space"><img src="https://n2o.space/img/Synrc Neo.svg"></a>
<h1>O7 ECO</h1>
</header>
<aside>
<article>
<section>
<h3>SYNOPSIS</h3>
<div>
N2O defines a way to scale applications from protocols to modules,
events persistence and schema. It replaces CORBA/SOAP/XMPP in
small and compact binary manner, yet it's ready for high-speed,
low-latency IoT, MQTT, and WebSocket applications. You can embed
it into <b>cowboy</b>, <b>emqttd</b> or any message processing loop.
</div>
<h3>Stack</h3>
<ul style="color:white">
<li><a href="https://ws.n2o.space">o7/n2o</a> — N2O 5.11.1 MQTT WS</li>
<li><a href="https://kvx.n2o.space">o7/kvx</a> — KVX 5.11</li>
<li><a href="https://mad.n2o.space">o7/mad</a> — MAD 4.11</li>
<li><a href="https://bpe.n2o.space">o7/bpe</a> — BPE 3.11</li>
<li><a href="https://synrc.github.io/nitro">o7/nitro</a> — NITRO 3.10</li>
<li><a href="https://synrc.github.io/rest">o7/rest</a> — REST 5.10</li>
<li><a href="https://synrc.github.io/active">o7/active</a> — ACTIVE 4.11</li>
<li><a href="https://synrc.github.io/fs">o7/fs</a> — FS 4.10</li>
<li><a href="https://synrc.github.io/sh">o7/sh</a> — SH 2.11</li>
<li><a href="https://synrc.github.io/bert">o7/bert</a> — BERT 1.11.1</li>
<li><a href="https://review.n2o.space">o7/review</a> — REVIEW 1.11 TT</li>
<li><a href="https://sample.n2o.space">o7/sample</a> — REVIEW 1.11 WS</li>
<li><a href="https://mqtt.n2o.space">o7/mqtt</a> — N2O 5.11.1 TT</li>
</ul>
<br>
<div>
28 NOV 2018 © <a href="http://5ht.co/license.htm">DHARMA LICENSE</a>
</div>
</section>
</article>
</aside>
<main>
<section>
<a name=intro></a>
<h3>N2O as Communication Framework</h3>
<p>
N2O is an abstract processing loop of function with signature: Protocol -> IO,
where Protocol is a set of messages accepted by this function and result status IO
that could be continuation, JavaScript rendered code or binary data sent from server to client.
As being abstract it could be embedded into any netwotk server code, thus
is claiming to be communication framework. As communication framework
N2O supports different formatters (BERT/XML/JSON), provides mechanism
for service development, cache, session and logging facilities. The core
features is limited to 25KB.
</p>
<figure>
<img src="https://mqtt.n2o.space/man/WebSocket + MQTT.svg">
<figcaption>Schema. Live in Client processes or in Server Ring</figcaption>
</figure>
<p>
The main two usages of N2O:
1) live in client connection processes of server; 2) live in server workers
and handle all requests from client processes. You can add you own feature-set
versions of N2O with different Github repositories. N2O is distributed by modules
not as monolith application, so you can pick and pack different fiature combinations.
</p>
<figure><code>
1. {n2o, ".*", {git, "git://github.com/synrc/n2o", []}},
2. {n2o, ".*", {git, "git://github.com/synrc/mqtt", []}},
</code></figure>
</section>
<section>
<h3>N2O as Distributed Application Server</h3>
<p>Writing applications for N2O means writing protocol implementation
modules and plug them to protocol loop. Luckily, N2O shipped with set of protocol
implementations, resembling all the best parts SOA federations: XMPP/WS/CORBA.</p>
<figure>
<img src="https://n2o.space/img/mqtt.svg">
<figcaption>Picture 1. Protocol Modules</figcaption>
</figure>
<figure>
<img src="https://n2o.space/img/n2o-mq.png">
<figcaption>Picture 2. Protocol Messages</figcaption>
</figure>
</section>
<section>
<h3>N2O as Web Framework</h3>
<p>Web logic shoud be as much declarative as possible
at the same time the web logic language should be readable by Java, .NET engineers.
NITRO protocol is what we called Web Framework inside N2O ecosystem. If you plug NITRO module, you
automatically enables web framework for all devices. It resembles Nitrogen API,
well known Erlang Web Framework.</p>
<p>Here is example of Application powered by N2O Application Server. You may read more
in <a href="https://n2o.space/articles/web.htm">articles/web</a>.</p>
<figure><img src="https://n2o.space/img/web1.png" width=800 style="padding:20px;"></figure>
<p>You can read N2O Book: No Bullshit Web Framework for Wild Web
<a style="margin-bottom:30px;" href="http://synrc.com/apps/n2o/doc/book.pdf">N2O.PDF</a><br><br>
<img src="https://n2o.space/img/pdf.jpg" width=50>
</p>
</section>
<section>
<a name=modules></a><h3>N2O as Community</h3>
<ul>
<li><b><a href="https://github.com/5HT">5HT</a></b> — Maxim Sokhatsky <div class=desk>— N2O, KVS, MAD, BPE, MQTT, ROSTER</div></li>
<li><b><a href="https://github.com/doxtop">doxtop</a></b> — Andrii Zadorozhnii <div class=desk>— N2O, KVS</div></li>
<li><b><a href="https://github.com/proger">proger</a></b> — Vladimir Kirillov <div class=desk>— ACTIVE, FS</div></li>
<li><b><a href="https://github.com/dimathemachine">dimathemachine</a></b> — Dmitry Bushmelev <div class=desk>— REST</div></li>
<li><b><a href="https://github.com/romanshestakov">romanshestakov</a></b> — Roman Shestakov <div class=desk>— NITRO</div></li>
<li><b><a href="https://github.com/d1ffuz0r">d1ffuz0r</a></b> — Roman Gladkov <div class=desk>— LOG</div></li>
<li><b><a href="https://github.com/vsov">vsov</a></b> — Viktor Sovietov <div class=desk>— BOOK</div></li>
<li><b><a href="https://github.com/wizzard0">wizzard0</a></b> — Oleksandr Nikitin <div class=desk>— SEC</div></li>
<li><b><a href="https://github.com/sokal32">sokal32</a></b> — Vitaly Shutko <div class=desk>— KVS, MAD</div></li>
<li><b><a href="https://github.com/cystbear">cystbear</a></b> — Oleg Zinchenko <div class=desk>— N2O, KVS</div></li>
<li><b><a href="https://github.com/bushyn">bushyn</a></b> — Arseniy Bushyn <div class=desk>— CSS</div></li>
<li><b><a href="https://github.com/cryoflamer">cryoflamer</a></b> — Yuri Maslovsky <div class=desk>— MQTT</div></li>
<li><b><a href="https://github.com/qomputer">qomputer</a></b> — Igor Kharin <div class=desk>— K8S</div></li>
<li><b><a href="https://github.com/motorbit">motorbit</a></b> — Anton Makarov <div class=desk>— SWIFT</div></li>
<li><b><a href="https://github.com/xafizoff">xafizoff</a></b> — Marat Khafizov <div class=desk>— HASKELL </div></li>
<li><b><a href="https://github.com/YvgenTroshchiy">YvgenTroshchiy</a></b> — Yvgen Troshchiy <div class=desk>— KOTLIN </div></li>
</ul>
<br><br>
</section>
</main>
<footer>
Made with <span class="heart">❤</span> to N2O
</footer>
</body>
</html>