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