{"id":13423303,"url":"https://github.com/rust-iot/radio-hal","last_synced_at":"2026-04-08T13:31:13.448Z","repository":{"id":43874831,"uuid":"132086616","full_name":"rust-iot/radio-hal","owner":"rust-iot","description":"Embedded rust radio abstraction crate","archived":false,"fork":false,"pushed_at":"2024-04-18T23:25:26.000Z","size":105,"stargazers_count":74,"open_issues_count":9,"forks_count":14,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-27T18:15:48.178Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ryan.kurte.nz/notes/2020-01-05-rust-radio","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-iot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-04T04:25:58.000Z","updated_at":"2025-07-06T19:44:57.000Z","dependencies_parsed_at":"2024-03-29T07:25:47.606Z","dependency_job_id":"88d4f0fd-d00d-4eb1-9073-830a7817c4a2","html_url":"https://github.com/rust-iot/radio-hal","commit_stats":{"total_commits":83,"total_committers":9,"mean_commits":9.222222222222221,"dds":0.5180722891566265,"last_synced_commit":"44e5547b557012c338b90cc24ac7540cd1a515bd"},"previous_names":["ryankurte/rust-radio"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/rust-iot/radio-hal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-iot%2Fradio-hal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-iot%2Fradio-hal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-iot%2Fradio-hal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-iot%2Fradio-hal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-iot","download_url":"https://codeload.github.com/rust-iot/radio-hal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-iot%2Fradio-hal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31558380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T00:00:29.023Z","updated_at":"2026-04-08T13:31:13.420Z","avatar_url":"https://github.com/rust-iot.png","language":"Rust","funding_links":[],"categories":["Component abstraction crates"],"sub_categories":["Other"],"readme":"# Rust IoT Radio Abstraction(s)\n\nAn [embedded-hal](https://github.com/rust-embedded/embedded-hal) like abstraction for digital radio devices, this is intended to provide a common basis for implementing packet radio drivers, and for extension to support 802.15.4 / BLE etc. in the hope that we can construct embedded network stacks using this common abstraction.\n\nRadio devices should implement the [core traits](https://docs.rs/radio/), and then gain automatic [blocking](https://docs.rs/radio/latest/radio/blocking/index.html) helper functions. Experimental [async/await](https://docs.rs/radio/latest/radio/nonblocking/index.html) helpers are available behind the `nonblocking` feature flag, this uses [dtolnay/async-trait](https://github.com/dtolnay/async-trait), imports `std` and `async-std`, and requires a nightly compiler, and a `MockRadio` implementation for testing is available behind the `mock` feature flag (also requiring nightly).\n\n\n## Status\n\n**Work In Progress, expect major API changes**\n\n[![GitHub tag](https://img.shields.io/github/tag/ryankurte/rust-radio.svg)](https://github.com/ryankurte/rust-radio)\n[![Build Status](https://travis-ci.com/ryankurte/rust-radio.svg?token=s4CML2iJ2hd54vvqz5FP\u0026branch=master)](https://travis-ci.com/ryankurte/rust-radio)\n[![Crates.io](https://img.shields.io/crates/v/radio.svg)](https://crates.io/crates/radio)\n[![Docs.rs](https://docs.rs/radio/badge.svg)](https://docs.rs/radio)\n\n[Open Issues](https://github.com/ryankurte/rust-radio/issues)\n\n\n### Features:\n\n- [ ] Generic Traits\n  - [x] Transmit\n  - [x] Receive\n  - [x] Set Channel\n  - [x] Fetch RSSI\n  - [x] Register Access\n  - [ ] Configuration (?)\n- [ ] Mode Specific Traits (and definitions)\n  - [ ] 802.15.4\n  - [ ] BLE\n  - [ ] LoRa\n- [x] Helpers\n  - [x] Blocking\n  - [x] Async\n\n\n### Examples\n\n- [ryankurte/rust-radio-sx127x](https://github.com/ryankurte/rust-radio-sx127x)\n- [ryankurte/rust-radio-sx128x](https://github.com/ryankurte/rust-radio-sx128x)\n- [ryankurte/rust-radio-at86rf212](https://github.com/ryankurte/rust-radio-at86rf212)\n- [ryankurte/rust-radio-s2lp](https://github.com/ryankurte/rust-radio-s2lp)\n\n\n**For similar interfaces, check out:**\n- Riot-OS \n  - [netdev.h](https://github.com/RIOT-OS/RIOT/blob/master/drivers/include/net/netdev.h)\n  - [ieee802154.h](https://github.com/RIOT-OS/RIOT/blob/master/drivers/include/net/netdev/ieee802154.h)\n    [netdev_ieee802154.c](https://github.com/RIOT-OS/RIOT/blob/master/drivers/netdev_ieee802154/netdev_ieee802154.c)\n- Contiki-OS\n  - [core/dev/radio.h](https://github.com/contiki-os/contiki/blob/master/core/dev/radio.h)\n- Tock-PS\n  - [ieee802154/device.rs](https://github.com/tock/tock/blob/master/capsules/src/ieee802154/device.rs)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-iot%2Fradio-hal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-iot%2Fradio-hal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-iot%2Fradio-hal/lists"}