• Stars
    star
    186
  • Rank 207,316 (Top 5 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created almost 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A distribution of tools and examples for building embedded IoT applications in Rust

Drogue Device

CI Build CI Test crates.io docs.rs Matrix Bors enabled

Drogue device is a distribution of tools and examples for building embedded IoT applications in Rust.

  • Built using rust, an efficient, memory safe and thread safe programming language.
  • Based on embassy, the embedded async project.
  • IoT examples for BLE, Bluetooth Mesh, WiFi and LoRaWAN with OTA functionality.
  • Works out of the box with the Drogue Cloud connectivity layer.
  • Async programming model for writing safe and efficient applications.
  • All software is licensed under the Apache 2.0 open source license.

See the documentation for more information.

Go to our homepage to learn more about the Drogue IoT project.

Minimum Supported Rust Version

Drogue Device requires the Rust nightly toolchain. If you installed rust using rustup, all the commands should "just work".

Hardware

Drogue device runs on any hardware supported by embassy, which at the time of writing includes:

  • nRF52
  • STM32
  • Raspberry Pi Pico
  • Linux, Mac OS X or Windows
  • WASM (WebAssembly)

We provide examples for a subset of hardware that we ensure works and that are relevant for IoT.

Example applications

An overview of the examples can be found in the documentation.

You can copy the examples if you wish to create an application outside of this repository.

Developing

To make testing and developing examples a bit easier, we have defined a few commands that you can run from the root folder of the repository that should work with any example. These commands will also ensure that the appropriate bootloader is installed if needed.

To flash an example, run cargo xtask flash:

cargo xtask flash examples/nrf52/microbit/ble

To debug an example, run cargo xtask debug:

cargo xtask debug examples/nrf52/microbit/ble

To just build the example, run cargo xtask build:

cargo xtask build examples/nrf52/microbit/ble

To do a full build of everything including examples:

cargo xtask ci

Directory layout

  • boards - Board Support Package (BSP) for supported boards
  • device - Library for building IoT applications
  • macros - macros to load configuration files for the device firmware.
  • examples - examples that can run on different boards

Contributing

See the document CONTRIBUTING.md.

Community

More Repositories

1

embedded-tls

An Rust TLS 1.3 implementation for embedded devices.
Rust
172
star
2

reqwless

Rust async HTTP client for embedded/no_std
Rust
124
star
3

drogue-cloud

Cloud Native IoT
Rust
113
star
4

ector

Ector is an open source async, no-alloc actor framework for embedded devices.
Rust
45
star
5

embedded-update

Rust
20
star
6

btmesh

Rust
19
star
7

drogue-async

Rust
12
star
8

drg

A command line tool for managing apps and devices in Drogue IoT cloud
Rust
11
star
9

drogue-esp8266

Rust
10
star
10

tokio-dtls-stream-sink

Tokio-based streaming API for UDP + DTLS sessions
Rust
9
star
11

drogue-ajour

Rust
7
star
12

drogue-bme680

A driver for the BME680 sensor, written in Rust.
Rust
6
star
13

drogue-rak811

Driver for the RAK811 LoRaWAN AT command firmware
Rust
6
star
14

trouble

Rust bluetooth low energy stack
Rust
6
star
15

drgdfu

An firmware update tool for devices with DFU capabilities
Rust
5
star
16

drogue-http-client

HTTP client for embedded systems
Rust
5
star
17

drogue-mpu-6050

Rust
4
star
18

drogueroids

πŸ‘Ύ We come in peace
JavaScript
4
star
19

drogue-microbit

Drogue IoT drivers and examples for the BBC micro:bit
Rust
4
star
20

drogue-bluetooth-gateway

Drogue Bluetooth Gateway
Rust
4
star
21

book.drogue.io

The Book of Drogue IoT
JavaScript
4
star
22

hey-rodney

"Hey Rodney, kill console pods!"
Python
4
star
23

drogue-workshops

Workshops for learning about Drogue IoT
4
star
24

esp8266-at-driver

Esp8266 AT command driver
Rust
4
star
25

arduino-examples

Examples for using Drogue Cloud with Arduino
C++
3
star
26

drogue-boot

Rust
3
star
27

drogue-embedded-timer

Rust
3
star
28

drogue-device-ng

Next generation of drogue-device platform
Rust
3
star
29

burrboard

Rust
3
star
30

drogue-network

Forkish of embedded-nal
Rust
3
star
31

drogue-cloud-helm-charts

Drogue IoT Helm Charts
Smarty
3
star
32

drogue-ttn

Rust mappings for APIs of *The Things Network*
Rust
3
star
33

quarkus-mqtt-integration-starter

An MQTT example getting starter with Quarkus and Drogue IoT
Java
3
star
34

drogue-agent-opcua

Drogue IoT Agent for OPC UA
Java
3
star
35

web-embedded-hal

Helpers and utlities for writing WASM applications integrating with drogue iot
Rust
2
star
36

drogue-doppelgaenger

Drogue DoppelgΓ€nger is not a digital twin
Rust
2
star
37

es-wifi-driver

Rust
2
star
38

drogue-influxdb-pusher

Pushing CloudEvents to InfluxDB
Rust
2
star
39

drogue-vorto-converter

A payload converter backed by Eclipse Vorto
Java
2
star
40

micropython-examples

Examples of using Drogue Cloud with micropython devices
Python
2
star
41

rtt-logger

Rust
2
star
42

rfcs

Design documents for Drogue IoT components
2
star
43

drogue-cloud-testing

System tests for Drogue Cloud
Rust
2
star
44

drogue-opcua-agent-rust

OPC UA agent
Rust
2
star
45

drogue-client

Rust clients for Drogue IoT Cloud
Rust
1
star
46

drogue-grove-uart-spi

An implementation of Grove's SPI over UART protocol
Rust
1
star
47

ble-mesh

Rust
1
star
48

quarkus-mqtt-integration-example

Demoing Drogue IoT and Quarkus using the MQTT integration
Java
1
star
49

drogue-es-wifi

Rust
1
star
50

drogue-bazaar

A place to find tools for building your Rust application
Rust
1
star
51

drogue-bsec

Interface to Bosch Sensortec Environmental Cluster (BSEC)
Rust
1
star
52

drogue-bluetooth

Rust
1
star
53

btmesh-operator

Drogue IoT Bluetooth Mesh operator
Rust
1
star
54

drogue-event-source

A Knative event source for Drogue IoT
Rust
1
star
55

drogue-antora-ui

CSS
1
star
56

drogue-postgresql-pusher

Pushing CloudEvents to PostreSQL (and TimescaleDB)
Rust
1
star
57

www.drogue.io

The Drogue IoT homepage
HTML
1
star
58

esp8266-playground

Rust
1
star