Skip to content

micwik/ArnLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Copyright (C) 2010-2022 Michael Wiklund.
All rights reserved.
Contact: [email protected]

ArnLib - Active Registry Network.

This Qt based library makes it easy to distribute changing data objects. It also gives a central place to find all your systems' current data. By using the ArnBrowser, all data objects are real time presented in a tree view.

Comparison to similar concepts

  • Data mart: Statistical data gathered from different systems. This makes it possible to run cross system analysis.

  • Windows Active Directory (R): Centralized configuration data. All in one place easily shared.

  • ArnLib: Hot changing data from different systems. Enables easy cross system data exchange, debugging, etc.

Installation and usage

Read [doc/Install.md](\ref ins_build) how to build, install and use.

ArnLib could be beneficial in a lot of projects. It should be well suited to the following conditions:

  • A lot of configurations and changing values.
    ArnLib helps giving out-of-the-box diagnostics and ability to change values not yet available in the custom application user interface.

  • Hardware with a lot of sensors and controls.
    Arnlib helps giving a common interface and diagnostic.

  • Distributed systems.
    ArnLib helps giving an out-of-the-box data sharing system that replicates Arn objects.

  • Networked services by RPC (remote procedure call).
    Will be quite the same as setting up signals and slots for local calls. You can find an easy example in the ArnLib package, showing a simple chat Client and Server.

  • ZeroConfig detection of present services.
    Helps advertise and browse a service (ftp, http, arn, ...) on a local network. This is similar to UPNP discovery of units.

Main features

  • Based on Qt (4, 5 and 6), multiple platform and OS support.
  • Qt based Arn browser available. Allows you to access all data objects in a tree view (see ArnBrowser).
  • Web based Arn browser available, allowing you to use a standard web browser (see WebArnBrowser).

Arn Data Objects

  • Hierarchical storage of hot changing data objects.

  • Arn Data objects can be: integers, floats, strings, byte arrays and variants (most Qt data types, e.g. QImage).

  • Data objects can typically be: measures, settings, data streams, documents, scripts (js), etc.

  • Arn Data objects are thread-safe.

  • Native support for data validation and double direction pipes (streams).

  • Enums, Flags and SubEnunms in code available as text for output and parse.

  • Metrics of Arn available in Arn tree.

Sharing

  • Data objects can be shared in a single program, among threads or between programs, at different computers. This division of program modules can be changed and is transparent to usage of ArnLib.

  • TCP connection can be SSL-encrypted.

  • Support for temporary session data objects. Optional auto-delete of objects when tcp/ip closes and unique uuid names.

  • Dependency system with custom offered services and getting signals when all needed services are available.

  • Monitoring of newly created data objects and any mode change.

  • Login system, to give access protection and different privileges.

  • Remote access to Arn sessions, to view and control currently connected clients.

Persistent storage

  • Optional persistent storage of object in SQLight or in a file.

  • Support for version control (VCS) of objects stored in files. This can be git.

Java Script

  • Native support in JavaScript for: Arn Data Objects, Dependency system and Monitoring of changed objects.

  • Java Script jobstack with preemptive and cooperative scripts running at different priorities.

Data streams and Remote Procedure Call

  • All data streams (pipes) can easily be monitored and manual test data can be inserted (see ArnBrowser).

  • Service Api, for calling routines anywhere in connected Arn. Remote Procedure Call (RPC) simple to use as "remote signal slots".

  • Service Api has an automatically generated help for giving syntax when doing debug manual typed calls to a RPC service.

ZeroConfig and Discover

  • Any service (ftp, http, arn, etc) can be advertised, browsed and resolved for its host address and port number.

  • High level, fully automatic support specialised for arn service, can e.g. remotely change the advertised service name.

  • Optional internal DNS_SD/mDNS routines for no dependency to any extra library.

Qml

  • Support in Qml for: Arn Data Objects, monitoring of changed objects and Service Api (RPC).

  • Added support in Qml for url like "arn:https:///test.qml".

  • Possibility to create a remote generic Qml running environment, comparable to a web browser running an arbitrary web application. This is done by ArnBrowser.

About

Active Registry Network

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages