I have been developing in Rust since 2018, with the start of my PhD. I mainly focus on embedded software and contributed to the following crates.

smoltcp

smoltcp is a standalone, event-driven TCP/IP stack that is designed for bare-metal, real-time systems. Its design goals are simplicity and robustness. Its design anti-goals include complicated compile-time computations, such as macro or type tricks, even at cost of performance degradation.

I added support for IEEE802.15.4 frame parsing, as well as support for the 6LoWPAN protocol (extension headers are not yet supported). Currently, Iā€™m working on adding support for RPL, the Routing Protocol for Low-Power and Lossy Networks.

RPLtree

I created the RPLtree tool, which parses PCAP files and outputs tree like strings in the terminal, which corresponds to the RPL tree. For example:

fe80::201:1:1:1
ā”œā”€ā”€ fe80::202:2:2:2
ā”‚   ā”œā”€ā”€ fe80::205:5:5:5
ā”‚   ā””ā”€ā”€ fe80::206:6:6:6
ā”‚       ā””ā”€ā”€ fe80::20b:b:b:b
ā”œā”€ā”€ fe80::204:4:4:4
ā”‚   ā”œā”€ā”€ fe80::20a:a:a:a
ā”‚   ā””ā”€ā”€ fe80::209:9:9:9
ā””ā”€ā”€ fe80::203:3:3:3
    ā”œā”€ā”€ fe80::208:8:8:8
    ā””ā”€ā”€ fe80::207:7:7:7

CC2538

I maintain the Peripheral Access Crate (cc2538-pac) and the Hardware Abstraction Layer (cc2538-hal) of the CC2538 chip.