ASTERIX Decoder Documentation
ASTERIX (All Purpose STructured EUROCONTROL SuRveillance Information EXchange) is a decoder/parser for the EUROCONTROL ASTERIX protocol - an ATM (Air Traffic Management) Surveillance Data Binary Messaging Format.
Choose Your Language
🔧 C++
High-performance command-line tool for processing ASTERIX data.
- C++ API Reference - Complete API documentation (Doxygen)
- Build Guide - Building from source
- GitHub Repository - Source code
Quick Start:
# Ubuntu/Debian
sudo apt-get install asterix
asterix -f sample.pcap -j
🐍 Python
Simple, intuitive API for Python developers (3.10-3.14).
- Python Documentation - User guide and API reference (ReadTheDocs)
- PyPI Package - Install with pip
- Build Guide - Building Python module
Quick Start:
pip install asterix-decoder
import asterix
records = asterix.parse(raw_bytes)
🦀 Rust
Type-safe, memory-safe bindings with zero-copy performance (Rust 1.70+).
- Rust Documentation - API reference (docs.rs)
- crates.io - Install with cargo
- Build Guide - Building Rust crate
Quick Start:
cargo add asterix-decoder
use asterix::Parser;
let parser = Parser::new().build();
let records = parser.parse(&data)?;
Documentation
Getting Started
- Build & Installation Guide - Multi-platform build instructions
- Quick Start Examples - Get running in 5 minutes
- C++ API Reference - Complete C++ API documentation
User Guides
- C++ User Guide - Command-line tool and library guide
- Python User Guide - Complete Python API guide
- Rust User Guide - Complete Rust API guide
- Wireshark Plugin Guide - Wireshark ASTERIX_EXT plugin
- ZeroMQ Transport Guide - Low-latency messaging transport
- MQTT Transport Guide - IoT and cloud messaging transport
- gRPC Transport Guide - High-performance RPC transport
- Cyclone DDS Guide - Real-time DDS for safety-critical systems
- Zenoh Transport Guide - Edge-to-cloud pub/sub for distributed systems (Rust)
- Troubleshooting Guide - Solutions to common issues
Technical Resources
- Architecture Overview - System design and layer separation
- Binding Guidelines - Creating new language bindings
- Protocol Integration - Adding protocol adapters
- GitHub Repository - Source code and examples
- Performance Optimizations - 55-61% speedup details
- Security Policy - Security audit and policy
Development
- Contributing Guide - How to contribute
- Safety-Critical Guide - DO-278 compliance patterns
- DO-278 Compliance - Aviation safety certification
- Issue Tracker - Report bugs or request features
Features
Multi-Language Support
- C++ Executable - Command-line tool (C++23/C23)
- Python Module - Python 3.10-3.14 bindings
- Rust Crate - Safe, zero-copy bindings
Multi-Platform
- Linux (Ubuntu, Debian, RHEL, Fedora)
- Windows (10/11, Server 2019/2022)
- macOS (Intel & Apple Silicon)
Input Formats
- Raw ASTERIX binary
- PCAP captures (Wireshark)
- FINAL packet format
- HDLC framed data
- GPS packet format
- UDP multicast streams
Output Formats
- Human-readable text
- JSON (compact & pretty)
- XML (compact & pretty)
- Parsable line format
Performance
- 55-61% faster than baseline (optimized C++ core)
- Zero-copy operations where possible
- Efficient memory management
- Streaming support for large files
Quick Links
Support
- Documentation Issues: File a bug
- Questions: GitHub Discussions
- Security: See SECURITY.md
Last updated: 2025-11-30 | Version 2.9.0 | Edit this page