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