---
# System prepended metadata

title: Architecture analysis
tags: [Documents]

---

---
tags: Documents
title: Architecture analysis
---

# Architecture Analisys - Webthings

## Introduction
- [normative url](https://webthings.io/)
- Short description

## Standards

### Web Of Things
- [normative url](https://webofthings.org/standards/)
- Short description

## Components

### WebThings Gateway
- [normative url](https://github.com/WebThingsIO/gateway)
- [architecture](https://github.com/WebThingsIO/wiki/wiki/Gateway-Architecture)
- Equivalent to the SIFIS-Home control panel

#### Languages
- TypeScript
- JavaScript
- Python

#### Main Dependencies
- [expressjs](https://expressjs.com)
    - [node.js]()
        - v8
        - openssl
- [page.js](https://github.com/visionmedia/page.js)
- [python]()
- Bluetooth stack (bluez, ...)

#### Protocols
- https
    - WebSocket
    - REST
- ...

### Adapters
The gateway can interact with devices through adapters, the adapters can be written JavaScript or TypeScript.


### registration server
Tunnelling service to access a local gateway from internet
- https://github.com/WebThingsIO/registration_server

#### Language
- Rust

#### Protocols
- https
- dns (powerdns)

#### Main dependencies
- actix-web
- diesel
    - mysql/postgres/sqlite
- openssl (down the road)

#### Service dependencies
- [pagekite](https://pagekite.net)

### WebThings Framework
**NOTE**: It is moving from legacy [Mozilla IoT](https://iot.mozilla.org/wot/) to [W3C WebOfThings]( https://www.w3.org/TR/wot-thing-description/)

#### Languages
Many languages supported we focus on [Rust](https://github.com/WebThingsIO/webthing-rust)

#### Dependency
- actix-web 
- **openssl**

#### Protocols
- https
    - WebSocket
    - REST

#### Main Dependencies
Among the full list [full list](https://github.com/WebThingsIO/webthing-rust/blob/master/Cargo.toml)
- actix-web
- openssl