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. |