Crate adsb_deku

source ·
Expand description

adsb_deku provides decoding for the ADS-B Downlink protocol by using the deku crate.

See for more details.

Comm-B Altitude Reply and Comm-B Identity Reply Comm-B Support

(1,0)Data Link CapabilityA-2-16
(2,0)Aircraft IdentificationA-2-32

Extended Squitter(ADS-B) and Extended Squitter(TIS-B) Type Code Support


To begin using adsb_deku, import the Frame struct as well as the trait deku::DekuContainerRead. This trait is re-exported for your convenience. Frame::from_bytes() provides the interface for decoding bytes into adsb data.

use hexlit::hex;
use adsb_deku::Frame;
use adsb_deku::deku::DekuContainerRead;

let bytes = hex!("8da2c1bd587ba2adb31799cb802b");
let frame = Frame::from_bytes((&bytes, 0)).unwrap().1;
        r#" Extended Squitter Airborne position (barometric altitude)
  Address:       a2c1bd (Mode S / ADS-B)
  Air/Ground:    airborne
  Altitude:      23650 ft barometric
  CPR type:      Airborne
  CPR odd flag:  even
  CPR latitude:  (87769)
  CPR longitude: (71577)


The apps/ directory of the project repository contains programs radar and 1090 for showcasing different adsb_deku uses. See the for examples of use.


pub use deku;


All data structures needed for parsing DF::ADSB or DF::TisB messages
B-Definition Subfield for Comm-B Messages
Compact Position Reporting for Position Reporting


13 bit encoded altitude
Latitude, Longitude and Altitude information
Downlink ADS-B Packet
ICAO Address; Mode S transponder code
13 bit identity code


Even / Odd
Transponder level and additional information (
Downlink Format (
Type of DownlinkRequest
Airborne / Ground and SPI
Uplink / Downlink
Positive / Negative
SPI Condition
Message Type