Software Implementations

Below you find software implementing the interfaces published by the Neuro-Foundation. If you want to add links to your software, please feel free to send a request via our feedback page.

Libraries

In this section you find links to software libraries that can be used to implement support for Neuro-Foundation interfaces in your applications.

XMPP libraries

Project Language Environment Source Code Description
Waher.Networking.XMPP C# .NET Std 1.3 GitHub Generic extensible XMPP client library.
Waher.Networking.XMPP.UWP C# UWP GitHub Generic extensible XMPP client library for UWP.

Sensor data

Project Language Environment Source Code Description
Waher.Networking.XMPP.Sensor C# .NET Std 1.3 GitHub Sensor data library. Handles sensor data requests, event subscriptions as well as publish/subscribe using PEP. Both client and server side supported.
Waher.Networking.XMPP.Sensor.UWP C# UWP GitHub Sensor data library for UWP. Handles sensor data requests, event subscriptions as well as publish/subscribe using PEP. Both client and server side supported.

Control actions

Project Language Environment Source Code Description
Waher.Networking.XMPP.Control C# .NET Std 1.3 GitHub Control library. Handles both simple and data form control parameter operations. Both client and server side supported.
Waher.Networking.XMPP.Control.UWP C# UWP GitHub Control library for UWP. Handles both simple and data form control parameter operations. Both client and server side supported.

Concentrators

Project Language Environment Source Code Description
Waher.Networking.XMPP.Concentrator C# .NET Std 1.3 GitHub Concentrator library. Handles discovery and management of data sources and nodes inside a concentrator. Both client and server side supported.
Waher.Networking.XMPP.Concentrator.UWP C# UWP GitHub Concentrator library for UWP. Handles discovery and management of data sources and nodes inside a concentrator. Both client and server side supported.

Thing Registries

Project Language Environment Source Code Description
Waher.Networking.XMPP.Provisioning C# .NET Std 1.3 GitHub Thing Registry and Provisioning library. Handles registration, claims and searching in thing registries, as well as support for provisioning for clients.
Waher.Networking.XMPP.Provisioning.UWP C# UWP GitHub Thing Registry and Provisioning library for UWP. Handles registration, claims and searching in thing registries, as well as support for provisioning for clients.

Provisioning

Project Language Environment Source Code Description
Waher.Networking.XMPP.Provisioning C# .NET Std 1.3 GitHub Thing Registry and Provisioning library. Handles registration, claims and searching in thing registries, as well as support for provisioning for clients.
Waher.Networking.XMPP.Provisioning.UWP C# UWP GitHub Thing Registry and Provisioning library for UWP. Handles registration, claims and searching in thing registries, as well as support for provisioning for clients.

Legal Identities

Project Language Environment Source Code Description
Waher.Networking.XMPP.Contracts C# .NET Std 1.3 GitHub Helps apply for and manage legal identities, as well as upload and sign smart contracts, from a client perspective.

Smart Contracts

Project Language Environment Source Code Description
Waher.Networking.XMPP.Contracts C# .NET Std 1.3 GitHub Helps apply for and manage legal identities, as well as upload and sign smart contracts, from a client perspective.

Clock Synchronization

Project Language Environment Source Code Description
Waher.Networking.XMPP.Synchronization.UWP C# UWP GitHub Can be used to synchronize clocks between entities in a global federated network, for UWP.
Waher.Networking.XMPP.Synchronization C# .NET Std 1.3 GitHub Can be used to synchronize clocks between entities in a global federated network.

Publish/Subscribe

Project Language Environment Source Code Description
Waher.Networking.XMPP.PEP C# .NET Std 1.3 GitHub Support for the Personal Eventing Protocol (PEP) simplified Publish/Subscrube pattern in XMPP (XEP-0163).
Waher.Networking.XMPP.PEP.UWP C# UWP GitHub Support for the Personal Eventing Protocol (PEP) simplified Publish/Subscrube pattern in XMPP (XEP-0163), for UWP.
Waher.Networking.XMPP.PubSub C# .NET Std 1.3 GitHub Support for generic Publish/Subscribe in XMPP (XEP-0060).
Waher.Networking.XMPP.PubSub.UWP C# UWP GitHub Support for generic Publish/Subscribe in XMPP (XEP-0060), for UWP.

Peer-to-Peer communication

Project Language Environment Source Code Description
Waher.Networking.XMPP.P2P C# .NET Std 1.3 GitHub Support for serverless XMPP communication, as well as end-to-end security.

End-to-End encryption

Project Language Environment Source Code Description
Waher.Networking.XMPP.P2P C# .NET Std 1.3 GitHub Support for serverless XMPP communication, as well as end-to-end security.

Elliptic Curve Cryptography

Project Language Environment Source Code Description
Waher.Security.EllipticCurves C# .NET Std 1.3 GitHub Contains a class library implementing algorithms for Elliptic Curve Cryptography, such as ECDH, ECDSA, NIST P-192, NIST P-224, NIST P-256, NIST P-384 and NIST P-521

Remote Software Updates

Project Language Environment Source Code Description
Waher.Networking.XMPP.Software C# .NET Std 1.3 GitHub Contains a class library implementing a client for managing and downloading software packages and software updates.

Geo-spatial publish/subscribe

Project Language Environment Source Code Description
Waher.Networking.XMPP.Geo C# .NET Std 1.3 GitHub Helps apply for and manage legal identities, as well as upload and sign smart contracts, from a client perspective.

Software

In this section you find software that implements the Neuro-Foundation interfaces.

Server software

Project Language Environment Description
TAG Neuron®, a.k.a. the “IoT Broker”. C# Windows (x86) XMPP Broker with support for Neuro-Foundation interfaces, as well as support for eDaler® and Neuro-Ledger®.

Client software

Project Language Environment Description
Simple IoT Client C# Windows (x86) Simple Windows tool (WPF), supporting both M2M (IoT XEPs) and H2M (chat) interfaces. Can be used to monitor communication and test device interfaces. Support for Thing Registries and Provisioning also provided.
TAG Legal Lab Windows Application C# Windows Windows Application (WPF) allowing you to design, create, sign and propose smart contracts, using Neuro-Foundation interfaces.
TAG white-label Neuro-Access App C# Android, iOS Simple Smart Phone App (Maui), utilizing Neuro-Foundation interfaces for digital identities, smart contracts, as well as interacting with others and devices
TAG ComSim Communication Simulator C# .NET Core Command-Line tool that can simulate large numbers of devices and usage by users over time based on stochastic models.

Example applications

Project Language Environment Description
SensorXmpp C# UWP Simple Sensor, running on Windows 10 IoT on Raspberry Pi with Arduino. Senses Light and Motion.
SensorXmpp2 C# UWP Similar to the SensorXmpp project, except that it supports provisioning, allowing its owner control who can access it and read what from it.
ActuatorXmpp C# UWP Simple Actuator, running on Windows 10 IoT on Raspberry Pi with Arduino. Controls a Relay.
ActuatorXmpp2 C# UWP Similar to the ActuatorXmpp project, except that it supports provisioning, allowing its owner control who can access it and read what from it.
ConcentratorXmpp C# UWP Simple Concentrator, running on Windows 10 IoT on Raspberry Pi with Arduino. Embeds the sensor and actuator projects as internal nodes inside a concentrator device using a single JID.
ConcentratorXmpp2 C# UWP Similar to the ConcentratorXmpp project, except that it supports provisioning, allowing its owner control who can access it and read what from its individual nodes.
ControllerXmpp C# UWP Simple Controller, running on Windows 10 IoT on Raspberry Pi with Arduino. Uses a Thing Registry to find a sensor and an actuator, on which it performs control actions based on input from the sensor. Sensor and actuators can be standalone, or reside behind a concentrator.
OpenWeatherMapSensor C# .NET Core Simple Sensor that maps a backend interface (here, using Open Weather Map API) to Neuro-Foundation harmonized IoT interfaces. Example runs on Windows 10 IoT on Raspberry Pi with Arduino.
IoTBridgeModbus C# .NET Core Application that bridges the Modbus protocol with the XMPP protocol. Devices on both ends can access other devices on the other end seamlessly.
IoTBridgeMqtt C# .NET Core Application that bridges the MQTT protocol with the XMPP protocol. Devices on both ends can access other devices on the other end seamlessly.