w3c / w3c/wot-scripting-api

Handle ThingDescriptions as streams

Open
#309 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

for next iteration use case
Dominant language
HTML
Stars
45
Forks
21
PR merge metrics
No merged PRs in 30d

Description

In the 08/03 call, we briefly explored the idea of handling Thing Descriptions as Streams. The discussion was originally brought up by the latest advancements in WoT Profiles and WoT Discovery. In particular, this issue is linked to the idea of a minimum supported hardware platform for WoT and Handle big TDs or set of TDs.

As discussed in the call we don't have a well-defined use case extracted for those issues, but the main idea is to allow a possible consumer application to read a TD incrementally. We have pinpointed three possible places that we'll need to be updated: the getThingDescription, consume, and the discovery method.

Notice that in Scripting API the only method to fetch TDs is using the discovery method. Furthermore, if we don't want to force the implementation to store everything in memory the method getThingDescription should be modified to return a stream and the consume method too. About this last point, my conjecture is that is possible to read a TD incrementally and create a ConsumeThing without having the whole TD always stored in some memory buffer.

Still, we find that the issue needs concrete examples where the current API design fails. The optimal would be having a concrete board or hardware as an example.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked WoT Profiles issue and WoT Discovery issue, then examine the getThingDescription, consume, and discovery methods in the Scripting API. Define a concrete board or hardware use case where the current API fails and document the required streaming behavior before attempting implementation.

Written by the indexing model from the issue text.

Assessment

Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.