Skip to content

Commit b6edfd3

Browse files
committed
add more badges and move use cases table from project README to here
1 parent 4c78c5c commit b6edfd3

4 files changed

Lines changed: 111 additions & 2 deletions

File tree

docs/index.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description: hololinked introduces SCADA & IoT systems to beginners
99

1010
As a novice, you have a requirement to control and capture data from your hardware, say in your electronics or science lab, and you want to show the data in a dashboard, provide a PyQt GUI or run automated scripts, `hololinked` can help. Even for isolated desktop applications or a small setup without networking, one can still separate the concerns of the tools that interact with the hardware & the hardware itself.
1111

12-
If you are a web developer or an industry professional looking for a web standards compatible (high-speed) IoT runtime, `hololinked` can be a decent choice. By conforming to [W3C Web of Things](https://www.w3.org/WoT/), one can expect a consistent API and flexible bidirectional message flow to interact with your devices, irrespective of the underlying protocol. Currently HTTP & ZMQ are supported.
12+
If you are a web developer or an industry professional looking for a web standards compatible (high-speed) IoT runtime, `hololinked` can be a decent choice. By conforming to [W3C Web of Things](https://www.w3.org/WoT/), one can expect a consistent API and flexible bidirectional message flow to interact with your devices, irrespective of the underlying protocol. Currently HTTP, MQTT & ZMQ are supported.
1313

1414
This implementation is based on RPC, built ground-up in python keeping both the latest web technologies and python principles in mind.
1515

@@ -18,6 +18,10 @@ This implementation is based on RPC, built ground-up in python keeping both the
1818
<a href="https://github.com/hololinked-dev/docs">
1919
<img src="https://img.shields.io/github/actions/workflow/status/hololinked-dev/docs/ci.yaml?label=Build%20And%20Publish%20Docs" alt="Documentation Status">
2020
</a>
21+
<a href="https://github.com/hololinked-dev/hololinked/actions/workflows/ci-pipeline.yml">
22+
<img src="https://github.com/hololinked-dev/hololinked/actions/workflows/ci-pipeline.yml/badge.svg" alt="CI Pipeline Status">
23+
</a>
24+
<img src="https://img.shields.io/badge/linter-ruff-blue?logo=ruff&logoColor=white" alt="Ruff Linter">
2125
<a href="https://pypi.org/project/hololinked/">
2226
<img src="https://img.shields.io/pypi/v/hololinked?label=pypi%20package" alt="PyPI">
2327
</a>
@@ -42,6 +46,9 @@ This implementation is based on RPC, built ground-up in python keeping both the
4246
<a href="mailto:info@hololinked.dev">
4347
<img src="https://img.shields.io/badge/email-brown" alt="email">
4448
</a>
49+
<a href="https://forms.gle/FB4XwkUDt1wV4GGPA">
50+
<img src="https://img.shields.io/badge/feedback%20form-brown" alt="feedback">
51+
</a>
4552

4653
</div>
4754

docs/introduction/contributing.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,41 @@ For good first issues, visit repository wise:
2828
- [website](https://github.com/hololinked-dev/website/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22)
2929
- [kubernetes](https://github.com/hololinked-dev/vps-kubernetes-cluster/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22)
3030

31-
Our [contribution guidelines](https://github.com/hololinked-dev/hololinked/blob/main/CONTRIBUTING.md) may also help for setting up development environments and making your PR. There are also [weekly office hours](https://github.com/hololinked-dev#monthly-meetings) & [discord group](https://discord.com/invite/kEz87zqQXh) (currently no participants).
31+
Our [contribution guidelines](https://github.com/hololinked-dev/hololinked/blob/main/CONTRIBUTING.md) may also help. There are also [weekly office hours](https://github.com/hololinked-dev#monthly-meetings) & [discord group](https://discord.com/invite/kEz87zqQXh) (currently no participants).
32+
33+
## Setup Development Environment
34+
35+
<a name="development-with-uv"></a>
36+
One can setup a development environment with [uv](https://docs.astral.sh/uv/) as follows:
37+
38+
1. Install uv if you don't have it already: https://docs.astral.sh/uv/getting-started/installation/
39+
2. Create and activate a virtual environment:
40+
41+
```bash
42+
uv venv venv
43+
source venv/bin/activate # On Windows: venv\Scripts\activate
44+
```
45+
46+
3. Install the package in development mode with all dependencies:
47+
48+
```bash
49+
uv pip install -e .
50+
uv pip install -e ".[dev,test]"
51+
```
52+
53+
## Running Tests
54+
55+
To run the tests with uv:
56+
57+
In linux:
58+
59+
```bash
60+
uv run --active coverage run -m unittest discover -s tests -p 'test_*.py'
61+
uv run --active coverage report -m
62+
```
63+
64+
In windows:
65+
66+
```bash
67+
python -m unittest
68+
```

docs/introduction/use-cases.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<table>
2+
<tr>
3+
<th>Protocol</th>
4+
<th>Plausible Use Cases</th>
5+
<th>Operations</th>
6+
</tr>
7+
<tr>
8+
<td>HTTP</td>
9+
<td>Web Apps</td>
10+
<td rowspan="4">
11+
<code>readproperty</code>,
12+
<code>writeproperty</code>,
13+
<code>observeproperty</code>,
14+
<code>unobserveproperty</code>,
15+
<code>invokeaction</code>,
16+
<code>subscribeevent</code>,
17+
<code>unsubscribeevent</code>,
18+
<code>readmultipleproperties</code>,
19+
<code>writemultipleproperties</code>,
20+
<code>readallproperties</code>,
21+
<code>writeallproperties</code>
22+
<br>
23+
properties and actions can be operated in a oneway and no-block manner (issue and query later format) as well
24+
</td>
25+
</tr>
26+
<tr>
27+
<td>ZMQ TCP</td>
28+
<td>Networked Control Systems, subnet protected containerized apps like in Kubernetes</td>
29+
</tr>
30+
<tr>
31+
<td>ZMQ IPC</td>
32+
<td>Desktop Applications, Python Dashboards without exposing device API directly on network</td>
33+
</tr>
34+
<tr>
35+
<td>ZMQ INPROC</td>
36+
<td>
37+
High Speed Desktop Applications (again, not exposed on network), currently you will need some CPP magic or disable GIL to leverage it fully
38+
</td>
39+
</tr>
40+
<tr>
41+
<td>MQTT</td>
42+
<td>
43+
Reliable pub-sub & incorporating into existing systems that use MQTT for <br> lightweight messaging
44+
</td>
45+
<td>
46+
<code>observeproperty</code>,
47+
<code>unobserveproperty</code>,
48+
<code>subscribeevent</code>,
49+
<code>unsubscribeevent</code>
50+
</td>
51+
</tr>
52+
<tr>
53+
<td>MQTT with websockets</td>
54+
<td>
55+
Reliable pub-sub for web applications, planned for November 2025 release.
56+
</td>
57+
<td>
58+
<code>observeproperty</code>,
59+
<code>unobserveproperty</code>,
60+
<code>subscribeevent</code>,
61+
<code>unsubscribeevent</code>
62+
</td>
63+
</tr>
64+
</table>

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ nav:
1111
- Resources: introduction/resources.md
1212
- Contributing: introduction/contributing.md
1313
- License: introduction/license.md
14+
- Protocol Use Cases: introduction/use-cases.md
1415
- Handbook:
1516
- Expose Python Objects: beginners-guide/articles/servers.md
1617
- Using Clients: beginners-guide/articles/object-proxy.md

0 commit comments

Comments
 (0)