Why RustiQ IoT ?¶
Because powerfull project are SIMPLE project, that work on reliability, and do not have to construct extra layers for managing the inconsistency.
We want to be able to develop a module on a desktop in hours, and test them extensively, like desktop application, or command lines.
We want to deploy them like “copy the file to the device”, and rely on the 30+ years : process/os (and not third parties)
We want to be able to rely on simple desktop tests for validation, especially on degraded modes, with a desktop environment
We want to take NO risks in deployment, and rollback easily
We don’t want to rely on external, plateform rich, complex stack to master the customer value
We don’t want to rely on external constraints in operation (must deploy, .. )
Do you want to depend on other “giant shoulders”, that will dictate the cost and reliability of YOUR solution. (kind of build or buy dilemna) Do you want, to MASTER, CONTROL and CHOOSE your product and service policy and resources ?
RustIot is then for you.
RustiqIOT advantage¶
All developments are done in RUST language. Leveraging correctness and densification of functionnalities (compilation is small, multiple functions in a lonely executable, multi plateform support thank’s to LLVM … ).
OS independence, makes the testing easier and cross compilation MUCH lighter
OS communication using sockets, easy to understand, one way to communicate to services
extensive use of sqlite for persistent state, transactions, and in objectives : reliability
Very small footprint (128Mb ram is OK, for large embedded applications)
promoting S3 protocol (http) for communications (the default), for software distribution and administration (no cloud based api needed for deployment, easy to deal with for large fleets). it also solved the “superball effect” when large fleets are deployed.
one “Command” gateway, using a simple function language, for controlling and mastering the device
engaging device to S3 communications, perventing security issues (opened port, attacks opens)
Development Complexity in Embedded Projects¶
Embedded projects typically involve managing multiple layers of complexity:
Development Environments: Multiple toolchains, cross-compilers, and SDKs for different target platforms
Testing Challenges:
Hardware-in-the-loop testing
Real-time behavior validation
Resource constraint verification
Environmental condition testing
Power consumption optimization
Technology Stack:
Bootloader configuration
Operating system customization
Device drivers
Communication protocols (I2C, SPI, UART, etc.)
Networking stack
Application layer
Quality Assurance:
Firmware validation
Over-the-air update testing
Long-term reliability testing
Security vulnerability assessment
RustiQ IOT helps manage this complexity by providing a structured framework and tools that handle many of these aspects, allowing developers to focus on their application-specific requirements.
Design and implementation choices¶
RustiQ Iot made difference choices in implementation :
Stay as close as possible to the RAW OS, and interfaces
Linux and OS are very robust software and let manage easily application crash, restart as well as communication channels (IPC/Sockets .. )
Minimizing the requierment of hardware in the service layer (defining simple and flexible interfaces), let simplify the development of large applications and ease module updates.
Ease the cross compilation level
using only process and command line, cross compilation is easy and speedup the development and testing of the application
Separate hardware specific functionnalities into hi level services,
In the stack the factory_service plugin offers the hardware related services associated to a plateform and OS, for example (wifi, (station / access point), powermanagement)
The main benefits of this approach is to be able to have module that can be easily ported to other plateforms, but also tested on a development station. Implementing Service Mock on development stage is quite convenient for testing dynamic behaviour.
Key Features Table¶
Feature Category |
Key Features |
|---|---|
Hardware |
Linux based Socs, Flash, additional microcontrollers ,Peripherals |
Connectivity |
Wi-Fi, Bluetooth, Ethernet, (LoRa, CAN, I2C throught additional modules) |
Software Stack |
Linux, Embedded Linux, Middleware |
Security |
Secure boot, Encryption, Authentication, OTA |
Development Tools |
GCC, Clang, Rust |
Performance |
Power optimization, Real-time tuning, Latency |
Compliance |
JSON, XMLRpc |
Use Cases |
IoT, Automotive, Industrial, Consumer Devices |