# Mender client in Rust

**URL:** <https://hub.mender.io/t/mender-client-in-rust/7540>\
**Category:** General Discussions\
**Tags:** mender-client\
**Created:** [February 10, 2025, 5:40pm UTC](https://hub.mender.io/t/mender-client-in-rust/7540 "2025-02-10T17:40:08Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![0xkelvin](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/0xkelvin/32/2414_2.png) [@0xkelvin](https://hub.mender.io/u/0xkelvin)\
**Post date:** [February 10, 2025, 5:40pm UTC](https://hub.mender.io/t/mender-client-in-rust/7540/1 "2025-02-10T17:40:08Z")

</div>

We are a small group who falling in Rust. We also used Mender for HMI-cluster on nxp imx8. We see clearly the benefit that Mender brings to the industry.

We would love to spreading Mender’s benefit to community more and more by developing Rust for Mender client and focus on esp32 first.

Please have a look at our repo : [GitHub - virust-ai/esp32-mender-client: A Mender (https://mender.io/) - client for Esp32 in Rust. Enabling Update AI model for the Edge](https://github.com/virust-ai/esp32-mender-client)  
Feel free to review the source code (it is still early stage, a lot of other features needs to be developed)

Please join our Discord for discussion : [ViRust-AI](https://discord.gg/r5uJ5QKg)

Next step : we would like develop it as a platform where user can update AI model for edge device

thanks

---

<div class="post-metadata">

**Author:** ![TheYoctoJester](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/theyoctojester/32/1444_2.png) [@TheYoctoJester](https://hub.mender.io/u/TheYoctoJester)\
**Post date:** [February 11, 2025, 11:26am UTC](https://hub.mender.io/t/mender-client-in-rust/7540/2 "2025-02-11T11:26:02Z")

</div>

Hi @0xkelvin,

Thanks so much for making this public! I have tried to follow the Readme now, and it works fine up to the point of `cargo run`. Probably I am missing some common knowledge in either the `rust` or ESP32 ecosystem.  
So generally speaking, I picked an ESP32-C3 as the board, upon which `cargo run` printed

```auto
mender@tyj-zephyr-vm:~/esp32-mender-client$ cargo run
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
     Running `espflash flash --monitor -T ./partitions.csv --erase-parts otadata target/riscv32imac-unknown-none-elf/debug/esp32-mender-client`
error: could not execute process `espflash flash --monitor -T ./partitions.csv --erase-parts otadata target/riscv32imac-unknown-none-elf/debug/esp32-mender-client` (never executed)

Caused by:
  No such file or directory (os error 2)

```

Do I need to use some other hardware? Or what might I be missing?

Greetz,  
Josef

---

<div class="post-metadata">

**Author:** ![0xkelvin](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/0xkelvin/32/2414_2.png) [@0xkelvin](https://hub.mender.io/u/0xkelvin)\
**Post date:** [February 12, 2025, 4:06am UTC](https://hub.mender.io/t/mender-client-in-rust/7540/3 "2025-02-12T04:06:52Z")

</div>

Hi @TheYoctoJester

We was starting with esp32-c6 which is difference in term of memory range with esp32-c3  
Some default setting for compilation is on esp32-c6

thanks for pointing out, we working on it to make it work on multi esp32 variants

---

<div class="post-metadata">

**Author:** ![TheYoctoJester](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/theyoctojester/32/1444_2.png) [@TheYoctoJester](https://hub.mender.io/u/TheYoctoJester)\
**Post date:** [February 12, 2025, 3:03pm UTC](https://hub.mender.io/t/mender-client-in-rust/7540/4 "2025-02-12T15:03:39Z")

</div>

Hi @0xkelvin,

Great news. As we have also been in touch on Discord, no need to fully continue the thread here, just for future reference: the above mentioned problem was solved by getting `espflash` installed via

```auto
cargo install espflash

```

Greetz,  
Josef

---

<div class="post-metadata">

**Author:** ![0xkelvin](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/0xkelvin/32/2414_2.png) [@0xkelvin](https://hub.mender.io/u/0xkelvin)\
**Post date:** [February 14, 2025, 3:50am UTC](https://hub.mender.io/t/mender-client-in-rust/7540/5 "2025-02-14T03:50:39Z")

</div>

Hi @TheYoctoJester  
Please test again on esp32c3, we made it works, but still a lot of things need to improve  
Our first video demo on esp32c3 : [https://youtu.be/N24ugg88bFo?si=dcfzLs0KfL9N6YSQ](https://youtu.be/N24ugg88bFo?si=dcfzLs0KfL9N6YSQ)

---

<div class="post-metadata">

**Author:** ![0xkelvin](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/0xkelvin/32/2414_2.png) [@0xkelvin](https://hub.mender.io/u/0xkelvin)\
**Post date:** [February 23, 2025, 1:43pm UTC](https://hub.mender.io/t/mender-client-in-rust/7540/6 "2025-02-23T13:43:19Z")

</div>

> **[Viet (Kelvin) M on LinkedIn: #ota #mender #esp #edgeai](https://www.linkedin.com/posts/viet-virust-ai_ota-mender-esp-activity-7299422353971625985-MyJw?utm_source=share&utm_medium=member_desktop&rcm=ACoAACXRjTABf_woQl9-oHZWyFdsN6ipCglaMTY)**
>
> The Mender client for esp32 (purely in Rust) got supported for 3 esp32 devices now : 
> \- esp32c3
> \- esp32c6
> \- esp32s3
> 
> There is a lot more need to improve, but…

we support for 3 esp devices now : esp32c6, esp32c3, esp32s3
