Web of Things
W3C

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.

Editing and Validation

Tools for editing, validating, and parsing Thing Descriptions in various programming environments

Name Description Languages
Thing Description Playground Reference validation suite including OpenAPI generation, linting, and other utilities JSON, yaml
Eclipse Edi{TD}or Web-based editor for creating and visualizing Thing Descriptions and Thing Models JSON
TD code Visual Studio Code extension for validation and code snippets JSON
Java API for Thing Descriptions of WoT (JDTs) Java module generating a Thing Description ORM from JSON-LD or RDF triples Java
Eclipse Ditto :: WoT :: Model Java module for working with Thing Descriptions and Thing Models Java
SIFIS-Home: wot-td Rust crate for producing and consuming Thing Descriptions Rust
thingdescription-go TD parser in Golang, based on Quicktype Go
tmtd TM to TD converter in Golang Go
wot-dtdl-converter Converter between DTDL and WoT Thing Models C#

Runtimes for TD Exposers

Libraries implementing a WoT Runtime for building Things according to WoT paradigms

Name Description Languages
Eclipse Thingweb node-wot W3C WoT implementation in Node.js supporting multiple bindings, with documentation at Thingweb TS
WoT Integration for Eclipse Ditto Links managed digital twins to WoT Thing Models to create Thing Descriptions with API details Java, TS
SANE WoT Servient Java implementation of W3C WoT supporting multiple bindings, inspired by node-wot Java
SIFIS-Home: wot-serve Rust crate for serving WoT Things Rust
wot-py Experimental Python implementation of W3C WoT supporting multiple bindings Python

Runtimes for TD Consumers

Libraries implementing a WoT Runtime for consuming Things and building custom applications

Name Description Languages
Eclipse Thingweb node-wot W3C WoT implementation in Node.js supporting multiple bindings, with documentation at Thingweb TS
Node-Red Node generator CLI tool generating Node-RED Consumer Nodes from a TD (see slides or video) JS
dart_wot Dart implementation of W3C WoT supporting HTTP and CoAP Dart
SANE WoT Servient Java implementation of W3C WoT supporting multiple bindings, inspired by node-wot Java
kotlin-wot Framework for implementing Web of Things in Kotlin Kotlin
WoT.Net .NET Standard 2.0 WoT Consumer implementation C#
wot-py Experimental Python implementation of W3C WoT supporting multiple bindings Python

TD Directories

Services hosting a Thing Description Directory implementing the W3C WoT Discovery specification

Name Description Languages
TinyIoT Thing Directory TDD implementation featuring DNS-SD registration, XPath 3.0/JSONPath queries, and authentication Go
WoTHive Thing Directory TDD implementation featuring SPARQL/JSONPath queries and SHACL-based validation Java
Eclipse Thingweb Domus TDD API TDD implementation featuring SPARQL queries, contextual validation, and flexible storage Python
SIFIS-Home: wot-discovery Tiny implementation of WoT Discovery in Rust Rust
Zion Scalable Thing Description Directory TS

Development Environments and UIs

Tools aiding WoT application development with user interfaces and other utilities

Name Description Languages
WoT Application Manager (WAM) CLI tool for quick node-wot project setup (see slides or video) TS
wot-wrench A web app to control Web of Things devices JS
tmc Tooling around TM catalogs, including hosting and CLI interaction Go
Thing Control Panel Visual admin client for WoT-compliant Things. Live Demo Python
BLAST - Block Applications For Things Blockly-based interface for building WoT Consumer applications. Live Demo JS
WoT API Development Environment (WADE) Desktop application (node-wot, Vue.js, Electron) for interaction, profiling, and Mashup generation JS
WoT FXUI Desktop, mobile, and browser UI for interacting with Things via TDs Java

WoT Software and Middleware

Deployable software providing functions like gateway, proxying, simulation, and testing

Name Description Languages
sayWoT! Industrial-grade implementation integrating devices into Siemens software No-Code
Web of Things Test Bench CLI tool for automated Thing testing based on TDs Java
WebThings Gateway Open source gateway bridging IoT protocols to the Web of Things for smart buildings JS
UA Edge Translator Industrial connectivity edge application translating proprietary protocols to OPC UA using WoT TDs C#
VO-WoT Python-based stack for developing WoT Things with Virtual Objects (VOs). Documentation here Python
wot-anything Easily extensible Web of Things server No-Code
Shadow Thing CLI tool for creating and deploying Things for simulation, proxying, or translation Java

Online Things

Publicly accessible Things for testing Consumer applications and learning TD communication

Name Description Languages
Eclipse Thingweb - Online Things for Testing Publicly accessible test Things hosted by Eclipse Thingweb TS, Python
wot-oss/thingmodels A set of Thing Models for real devices (currently Siemens) JSON

Other Tooling

Name Description Languages
WoT Plugin for AASX Package Explorer Plugin to import/export WoT TDs into Asset Administration Shell definitions C#
Eclipse LMOS Open-source, cloud-native platform for Multi-Agent systems Kotlin, Java
WoTify Tool for converting IoT metadata formats to WoT Thing Descriptions TS
Deploys by Netlify