eclipse-thingweb / eclipse-thingweb/node-wot

Suggestion about adding new protocol bindings/consumers

Open
#267 6 comments 2 reactions 0 assignees View on GitHub
core
Dominant language
TypeScript
Stars
192
Forks
100
Avg merge
4d 4h
Merged PRs (30d)
8

Description

Hi everyone,
I am currently writing my master thesis, which is about interoperability of protocols/systems with wot.
Till now, I made [Mozilla webthings](https://github.com/erkann-sen/wot-mozilla) and [openHAB](https://github.com/erkann-sen/wot-openhab/) consumable with node-wot with different methods.
What I wish is to somehow bring this functionality to node-wot library.
But I know that, adding a binding or helper for every platform makes the main library fatter and harder to maintain and also creates an illusion that for every platform there is another binding needed, which makes node-wot library seem hard to use and there is a discussion about what to make with Oracle and Fujitsu bindings.

When I am working with openHAB, I found their solution to this system, can be also useful for node-wot.
They have two different but connecting repos. A core repo, which has the main functionality of the system and ana add-ons repo which has several bindings or helpers for other systems.

I suggest we should have a main node-wot library, which has only the main bindings like MQTT, HTTP etc.
In another repo, we can have vendor specific bindings and helpers, all has their own readme file, which explains how to use. In this way it is also encouraged to write people more bindings to make other protocols work easily.

Advantages that I can think of are:

1. Easily readable and less complex main code
2. Easily maintainable main repo.
3. Adding another bindings are easier because it does not mess up with the main repo, which can increase the adoption of the system
4. The discussion about what to do with vendor specific bindings will end

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.