Eclipse VOStack

Wednesday, October 29, 2025 - 12:02 by Anastasios Zaf…
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Community Review
Background

Billions of interconnected devices now continuously generate data, which is transmitted across networks to cloud platforms or other IoT devices for processing. Over time, IoT scenarios have become more complex, integrating diverse sensors and devices—from single-board computers like the Raspberry Pi with gigabytes of memory to microcontrollers with just a few kilobytes. This evolution has led to the development of new standards tailored to specific applications. As a result, the IoT landscape is highly heterogeneous, with devices constrained by limited resources yet facing increasing demands for interoperability and scalability in smart environments like cities, factories, agriculture, and logistics.

Eclipse VOStack aims to address these challenges by providing W3C Web of Things compliant abstraction of IoT devices (Virtual Objects) and an accompanying software stack (VO Stack)  for managing interaction with edge/cloud computing orchestration platforms.

Scope

The Eclipse VOStack project delivers a multi-layer software framework that virtualizes IoT devices into interoperable Virtual Objects, enabling standardized management, semantic abstraction, service composition, and seamless integration with edge/coud technologies.

Eclipse VOStack is aligned with the W3C Web of Things Standard.

Virtual Object (VO) is a virtual counterpart of an IoT device. It provides abstractions for managing any type of IoT device while augmenting the supported functionalities through a multi-layer software stack, called VO Stack.

VO serves several important purposes which help to overcome the limitations described above:

  • Semantic abstraction: Provides a standard representation of a physical device for easier management, monitoring, and discovery of device resources.
  • Interoperability: Can be used in heterogeneous scenarios to bridge communication between different standards and protocols.
  • Data modelling: Enables the use of different data modellings for different purposes, leveraging physical devices for complex data model transmission.
  • Service composition: Composite Virtual Objects (cVOs) can be composed to extend the functionalities offered by one or multiple VOs under different interaction schemes.
  • Simulation and testing: In its Digital-Twin (DT) extension, the VOs and cVOs can be used to simulate physical device behavior in a virtual environment before deployment, as well as to support real-time interaction and guidance of the DT.
  • Remote management and accessibility: The VO enables continuous data access and remote management where physical device access can be limited or impractical.
  • Resource consumption: It can leverage the physical device.
  • Orchestration/Management interfaces: The VO can be managed by edge/cloud orchestration platforms, while also being part of distributed application graphs.

Eclipse VO Stack supports interaction with both physical IoT devices and edge/cloud computing orchestration platforms. It has three main architectural layers namely: 

  1. Physical Convergence Layer to tackle the major challenges of connecting the IoT devices with the computing continuum infrastructure
  2. Edge/Cloud Convergence Layer for bringing the VO closer to the application and orchestration layer.
  3. Backend Logic Layer for augmenting the functionalities and capabilities of IoT devices
Description

Eclipse VOStack is an open source software stack for IoT virtualization and convergence with edge/cloud computing technologies. It is aligned with the W3C Web of Things Standard.

The core of Eclipse VOStack is a python implementation building on wot-py (asynchronous Python implementation of a W3C Web of Things runtime). It extends wot-py with features of Virtual Objects (VO): 

  • Extension of Protocol Bindings: HTTP(S), CoAP, WebSockets, MQTT, Zenoh
  • Periodic Functions: Repeat Functions in irregular intervals
  • InfluxDB: Automatic saving of Property values on read/write operations, logging of Action invocations and Event emission
  • Automatic configuration of the VO: Script runner that takes a Web of Things Thing Description, a VO descriptor and a python code file and configures the VO

Additionally, VO Stack provides the following functionalities:

  • Automatic orchestration/virtualization in Kubernetes deployments
  • RTSP server for video streams
  • Proxy mode to turn a cVO into a proxy to other VOs
Why Here?

VO Stack development started in the scope of the NEPHELE EU Project in Eclipse Research Labs GitLab. The transition into an Eclipse incubation project was part of the project plan to create a basis for long-term sustainability of the project. We have already created very good collaboration with the Eclipse ThingWeb community and aim to continue and extend that.