VinhLin


Rust Lang

Rust_Embedded

Ngày Mô tả
1/4/2024 Khởi tạo bài viết
17/8/2024 Cập nhật bài viết, thêm thông tin về Rust-lang
13/9/2024 Update thêm documents về Rust

Hạn chế

Lợi ích

Rust Roadmap

Tài liệu về Rust


Cập nhật 17/8/2024

Youtube: Where is Rust being used?

Tổng hợp Rust is for Robotics

Doc: Offline-first Smart Energy Monitor with Rust, ESP32, and Thingsboard

Framework cho MQTT cho Rust: rumqtt

Framework NATS for Rust: nats.rs

  • Có thể sử dụng NATS cho ThingsBoard.
  • Sample code từ ChatGPT:
use nats::asynk::Connection;
use serde::{Deserialize, Serialize};
use serde_json::json;
use tokio::time::{sleep, Duration};

#[derive(Debug, Serialize, Deserialize)]
struct TelemetryData {
    device_id: String,
    temperature: f64,
    humidity: f64,
    timestamp: u64,
}

#[tokio::main]
async fn main() -> std::io::Result<()> {
    // Connect to the NATS server
    let nc: Connection = nats::asynk::connect("demo.nats.io").await?;

    // Subscribe to a subject where ThingsBoard publishes telemetry data
    let subscription = nc.subscribe("thingsboard.telemetry").await?;

    // Process incoming messages
    while let Some(msg) = subscription.next().await {
        // Parse the telemetry data (assumed to be JSON)
        let telemetry: TelemetryData = serde_json::from_slice(&msg.data).expect("Failed to parse telemetry data");

        println!("Received telemetry from device {}: Temperature = {}, Humidity = {}, Timestamp = {}",
                 telemetry.device_id, telemetry.temperature, telemetry.humidity, telemetry.timestamp);

        // Optionally, publish an acknowledgment or command back to ThingsBoard or another subject
        let response_subject = format!("thingsboard.ack.{}", telemetry.device_id);
        let ack_message = json!({
            "device_id": telemetry.device_id,
            "status": "acknowledged",
            "timestamp": telemetry.timestamp
        });

        nc.publish(&response_subject, ack_message.to_string().as_bytes()).await?;
    }

    Ok(())
}

Cập nhật 13/9/2024

Bài viết: 35 Rust Learning Resources Every Beginner Should Know in 2022

  • Trong bài viết này tổng hợp rất nhiều documents cho beginner để bắt đầu với Rust.
  • Ở đây mình thấy có những trang rất hay, ví dụ:

Tour of Rust

Trang này có tiếng Việt và có thêm phần để run code.

A half-hour to learn Rust

A Gentle Introduction To Rust

Easy Rust