1 unstable release
Uses new Rust 2024
| new 0.1.1 | Dec 18, 2025 |
|---|
#2093 in Embedded development
650KB
13K
SLoC
Native Rust Implementation of Matter (Smart-Home)
This crate implements the Matter specification that can be run on embedded devices to build Matter-compatible smart-home/IoT devices.
Currently Ethernet based transport is supported.
Examples
/// TODO: Fix once new API has stabilized a bit
use rs_matter::{Matter, CommissioningData};
use rs_matter::dm::device_types::device_type_add_on_off_light;
use rs_matter::dm::cluster_basic_information::BasicInfoConfig;
use rs_matter::sc::spake2p::VerifierData;
# use rs_matter::dm::sdm::dev_att::{DataType, DevAttDataFetcher};
# use rs_matter::error::Error;
# pub struct DevAtt{}
# impl DevAttDataFetcher for DevAtt{
# fn get_devatt_data(&self, data_type: DataType, data: &mut [u8]) -> Result<usize, Error> { Ok(0) }
# }
# let dev_att = Box::new(DevAtt{});
/// The commissioning data for this device
let comm_data = CommissioningData {
verifier: VerifierData::new_with_pw(123456),
discriminator: 250,
};
/// The basic information about this device
let dev_info = BasicInfoConfig {
vid: 0x8000,
pid: 0xFFF1,
hw_ver: 2,
sw_ver: 1,
sw_ver_str: "1".to_string(),
serial_no: "aabbcc".to_string(),
device_name: "OnOff Light".to_string(),
};
/// Get the Matter Object
/// The dev_att is an object that implements the DevAttDataFetcher trait.
let mut matter = Matter::new(dev_info, dev_att, comm_data).unwrap();
let dm = matter.get_data_model();
{
let mut node = dm.node.write().unwrap();
/// Add our device-types
let endpoint = device_type_add_on_off_light(&mut node).unwrap();
}
// Start the Matter Daemon
// matter.start_daemon().unwrap();
Start off exploring by going to the [Matter] object.
libertas-matter: A stripped-down lite version of official rs-matter
Keep it minimum for Libertas App development.
Dependencies
~27MB
~437K SLoC