N2O as Communication Framework

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.

Schema. Live in Client processes or in Server Ring

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.

1. {n2o, ".*", {git, "git://github.com/synrc/n2o", []}}, 2. {n2o, ".*", {git, "git://github.com/synrc/mqtt", []}},

N2O as Distributed Application Server

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.

Picture 1. Protocol Modules
Picture 2. Protocol Messages

N2O as Web Framework

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.

Here is example of Application powered by N2O Application Server. You may read more in articles/web.

You can read N2O Book: No Bullshit Web Framework for Wild Web   N2O.PDF

N2O as Community