CARVIEW |
Developer Resources
There are various resources available to build Web of Things applications. These are libraries, ready-to-use software, services or SDKs, which can be used in different stages of development or for development needs and are grouped below.
TD Tooling
Tools that allow editing and validation of TDs or that allow parsing them in programming language specific environments.
- Thing Description Playground - Reference TD Validation suite with additional tools such as OpenAPI generation, linting, and more.
- Eclipse Edi{TD}or - Web-based Editor for easy creation and visualization of Thing Descriptions and Thing Models.
- TD code - Visual Studio Code plugin for TD validation and code snippets.
- Java API for Thing Descriptions of WoT (JDTs) - Java module for creating Java Thing Description ORM from a TD in JSON-LD or RDF triples.
- Eclipse Ditto :: WoT :: Model - Java module for using TDs and TMs.
- SIFIS-Home: wot-td - Rust crate to produce and consume Web of Things Thing Descriptions.
WoT Development Tools
Ready-to-use tools that help the development of WoT applications by providing user interfaces and other tooling.
- WoT Application Manager (WAM) - CLI tool to quickly set up node-wot application projects. Additional information is available at slides or video.
- WoT API Development Environment (WADE) - Desktop application based on node-wot, Vue.js, and Electron that allows interaction with Things, profiling, Mashup generation.
- WoT FXUI - UI for desktop, mobile, and browser for interacting with Things based on their TDs.
- Thing Control Panel - Visual admin client for Things compliant with WoT, like a control panel, to test or interact with a server that has no GUI. Live Demo.
- BLAST - Block Applications For Things - Blockly-based programming interface to build WoT Consumer applications leveraging Thingweb node-wot Live Demo.
Runtime Implementations for TD Exposers
Software libraries that implement a WoT Runtime so that Things can be built following the WoT paradigms.
- Eclipse Thingweb node-wot - W3C Web of Things implementation in Node.js with support for multiple bindings. A website is available at Thingweb.
- WoT Integration for Eclipse Ditto - Ditto managed digital twins can be linked to WoT Thing Models from which Ditto can create Thing Descriptions containing the API descriptions of the twins.
- SANE WoT Servient - W3C Web of Things implementation in Java with support for multiple bindings, inspired by node-wot.
- wot-py - Experimental W3C Web of Things implementation in Python with support for multiple bindings.
- SIFIS-Home: wot-serve - Rust crate to serve WoT Things.
Runtime Implementations for TD Consumers
Software libraries that implement a WoT Runtime so that Things can be consumed and custom applications can be built on top, following the WoT paradigms.
- Eclipse Thingweb node-wot - W3C Web of Things implementation in Node.js with support for multiple bindings. A website is available at Thingweb.
- Node-Red Node generator - CLI tool to generate WoT Consumer Nodes for Node-RED from a TD. Additional information at slides or video.
- dart_wot - W3C Web of Things implementation written in Dart with support for HTTP and CoAP.
- SANE WoT Servient - W3C Web of Things implementation in Java with support for multiple bindings, inspired by node-wot.
- wot-py - Experimental W3C Web of Things implementation in Python with support for multiple bindings.
- kotlin-wot - A Framework for implementing Web of Things in Kotlin.
- WoT.Net - A .Net Standard 2.0 WoT Consumer Implementation.
TD Directory (TDD) Implementations
Services that host a Thing Description Directory which implements the W3C WoT Discovery specification.
- TinyIoT Thing Directory - TDD implementation with features such as DNS-SD registration, XPath 3.0 and JSONPath queries, authentication, and more.
- WoTHive Thing Directory - TDD implementation with features such as SPARQL and JSONPath queries, SHACL-based Validation, and more.
- Eclipse Thingweb Domus TDD API - TDD implementation with features such as SPARQL queries, contextual validation, and more, with a flexible storage mechanism.
- SIFIS-Home: wot-discovery - Tiny implementation of WoT Discovery written in Rust.
- Zion - A scalable Thing Description Directory
WoT Software and Middleware
Ready to use software applications that can be deployed in order to provide a certain functionality in a system, such as gateway and proxying, simulation, and testing services.
- sayWoT! - Industrial-grade implementation that allows integration of devices into Siemens software products.
- Web of Things Test Bench - CLI-based tool that tests a WoT Thing by executing interactions automatically, based on its TD.
- WebThings Gateway - An open source Web of Things gateway for smart buildings, which bridges a wide range of IoT protocols to the Web of Things.
- UA Edge Translator - An industrial connectivity edge reference application translating from proprietary protocols to OPC UA, leveraging the W3C Web of Things (WoT) Thing Descriptions.
- VO-WoT - A Python-based stack that allows developing WoT Things with additional functionalities, called Virtual Objects (VOs). A documentation website is available here.
- Shadow Thing - CLI-based tool for creating and deploying a Thing based on its TD for simulation, proxy, or protocol translation purposes.
Others
- WoT Plugin for AASX Package Explorer - Plugin to import/export WoT Thing Description into Asset Administration Shell definitions.
- Eclispe LMOS - Open-source, cloud-native platform for building and running Multi-Agent systems.
Online Things
Publicly accessible Things that can be used during development to test Consumer applications or learn how to understand Thing Descriptions to communicate with Things.