needed-libraries
needed-libraries copied to clipboard
IoT common libraries
Pure nim MQTT client
+1
Definitely +1 for MQTT. Would be awesome to have MQTTv5
https://github.com/zevv/nmqtt
IoT also requires portable binary serialization with very dense encoding and fragmentation+retry support:
- LoRaWAN works with packages not more than 50 bytes (in a worst-case), and sensor nodes can be built on dead-end low-profile microcontrollers such as ATtiny/ATmega8/STM32F030.
- CAN bus: 8 bytes packages
Generic binary parser generator/library required for arbitrary protocol description. The symmetrical parser must have: generate both data decoder and encoder from single declarative grammar specification.
- http://kaitai.io
- https://github.com/zeek/binpac
Option for procedural switch/automata code generation (not tables) required for debugging.
Full cross-compiler support at least for STM32F0/L0 series, Arduino and Raspberry Pi.
- STM32L0 mostly used in IoT modems, some vendors provide user code integration
For IoT applications Nim requires integration with newlib+FreeRTOS+FAT32+lwip for all embedded devices, and bare metal i386 (IoT platform over unikernel): threading, realtime task switching, lwip, minimal file system (maybe RAM-only stub, but SD cards require at least FAT32 support).
- http://elm-chan.org/fsw/ff/00index_e.html
- https://www.silabs.com/documents/public/application-notes/AN0030.pdf
- https://www.nongnu.org/lwip/2_1_x/index.html
For IoT server: embedded Linux or unikernel, message-passing distributed computing including load balancing and on-demand scalability, async Web server/interface with process control widgets, and math&ML plugins interface (for custom user data analysis).
End nodes require a DSP library for measurement processing and signal filtering.
Bindings on littelvGLl for embedded GUI would be useful
Use c2nim to create the bindings you need