Cocotte

Cocotte is a ready-to-use framework to build applications running on microcontrollers or small computers. It removes the non-existential questions of an embedded software project. Letting the user concentrates on what matters for their product.

Users model their application within the Cocotte boundaries and get many common features for free. Developers can jump from one project to another with ease as they recognize the structure of the application.

It compares to the experience of transitioning from a custom-made PHP code to structured framework à la Ruby on Rails/Django/Laravel for a web application.

Cocotte leverages the Rust type system to model the application. This allows to catch bug early in the development process, avoid runtime errors and make it impossible to represent an illegal state.

Application Development

Business logic

Cocotte provides a way to model the behavior of the application in a predictable way. This isolated behavior can be tested in a controlled environment running on a development machine without the embedded hardware.

Once the business logic reaches a certain threshold, it can be hard to test if the code is not well isolated and if hardware interfaces are not abstracted.

Communication to the outside world

Embedded systems often need to communicate with the outside world, be it Bluetooth, an industrial bus protocol or the cloud it does not matter. The developer does not need to rewrite the code from scratch for every new transport they need to support.

Tooling

As Cocotte knows how the state and configuration of the application is structured, it can provide tooling around them.

Cocotte also provides utilities that helps the developer to understand what went through a system. For example, Cocotte can keep a history of all the configurations changes that happened. To accomodate as much hardware as possible, those tools are optional can be activated when needed.

Cloud

Cocotte provides an optional cloud integration out of the box.

Hardware Support

Cocotte runs on top of Embassy which provides the necessary abstractions. If your microcontroller is supported by Embassy, it is supported by Cocotte. Many STM, Nordic, ESP, Risc-V are supported.