https://github.com/mihaigalos/osi-stack
🧩 OSI communication stack.
https://github.com/mihaigalos/osi-stack
arduino avr cpp embedded library
Last synced: about 2 months ago
JSON representation
🧩 OSI communication stack.
- Host: GitHub
- URL: https://github.com/mihaigalos/osi-stack
- Owner: mihaigalos
- License: gpl-3.0
- Created: 2020-04-21T16:52:57.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-12-21T13:55:10.000Z (over 2 years ago)
- Last Synced: 2025-02-26T11:46:07.515Z (over 1 year ago)
- Topics: arduino, avr, cpp, embedded, library
- Language: C++
- Homepage:
- Size: 315 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OSI Stack
[](https://codecov.io/gh/mihaigalos/osi-stack)
[](LICENSE)
[](https://github.com/Aaronepower/tokei)

OSI communication stack, initially written for AVR UART communication.
This implementation intentionally uses raw pointers instead of smart pointers.
The reasoning is that it will be ported to small 8-bit hardware architectures such as AVR/Arduino, with limited support for modern C++.
### Layers

### Build and Test
First, get the sources:
```
git clone https://github.com/mihaigalos/osi-stack.git && cd osi-stack
```
#### Baremetal
Building and testing is managed by `bazel`, including dependencies to other repos such as [containers](https://github.com/mihaigalos/containers) (transparent to the end-user).
```bash
bazel build //...
bazel test //...
```
#### Using Docker
```bash
docker run -it --rm --cap-add SYS_PTRACE -v $(pwd):/src -v /tmp:/tmp/bazel docker.pkg.github.com/mihaigalos/docker/bazel /bin/zsh -c "cd /src && bazel --output_base=/tmp/bazel test //..."
```
#### Session Layer Authentification
The Session handshake is described in the following diagram:

#### Matter of principles
This code respects many of the Clean Code & Architecture Principles:
* Composition over Inheritance
* Dependency Injection
* DMT
* Docs as Code
* DRY
* FIRST
* GRASP
* KISS
* Single Source of Truth
* SoC
* SOLID
* TDD
* Testing Pyramid