[Development] Request moving project (noron) to playground area

Hamed Masafi hamed.masafi at gmail.com
Sun Feb 5 10:35:32 CET 2017


Project name: Noron
Project description:

This tool implements remote object sharing (Object Oriented RPC) in Qt.
>From a technical point of view, it can compare with Java RMI or similar
technologies. Noron has an advanced signaling mechanism. A property change
on a peer (server or client) will immediately signal a change on other
peers. It can transfer every QVariant type (even QPixmap and complex types).

The Noron project is a framework that performs remote method invocation on
client/server shared objects, the object-oriented equivalent of remote
procedure calls (RPC). With support for direct transfer of serialized c++
types and QObject based objects.

A shared object, shares properties and methods on client and server. Every
property change on a peer reflect change to another one. A method-call on
one peer (server/client) call same method on another peer and return result
to caller.

There are 3 type of shared objects:
1) Peer: this object represents a connected client and in server
QList<peer> available as list of connected clients.
2) Global shared object. there is one instance of global shared object on
server and every method call invoke this object.
3) Shared objects: this type can be creating and share between of some
clients.

In chess game example player is type (1), a game created between 2 players
and some viewer is type (2) and server global object, for getting some data
from server like new messages or updates is type (3)

Noron can serialize and sent every type of QVariant over tcp, even QImage
and other types

Every method call on shared object can be return in some case to caller:
- Normal method call with UI freeze
- Return value to std::function
- Return value to slot of object
- Return value to qml function type
- Call method asynchronous without value return
every request sends with a key so request can send parallel.

Noron check request injection with a secret key and hashing data. And also
can track connection lost, after connection lost it will be auto reconnect
to server and on server it will be locate on old location on before
connection lost.

Noron can be used for this type of apps:
- Distributed application
- Online games
- Connection based apps (like chat applications and social networks)
- 3 layer applications
- ...

Noron is so easy to use and for now use a tool for interface generation but
in new version (not committed) use macro hack without any tool. The chat
example in the repo shows simple usage of Noron.

Further information is available via this git repo:
https://github.com/HamedMasafi/Noron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20170205/734e95cc/attachment.html>


More information about the Development mailing list