• Home
Name
Date
Size
#Lines
LOC

..--

doc/03-May-2024-683532

scripts/03-May-2024-3,6332,695

src/03-May-2024-10,0558,167

tests/03-May-2024-26,00724,904

Android.bpD03-May-202416.7 KiB553516

CONTRIBUTING.mdD03-May-20241.1 KiB3422

Cargo.tomlD03-May-2024605 3529

LICENSED03-May-202411.1 KiB203169

OWNERSD03-May-2024111 75

README.mdD03-May-2024869 3424

README.md

1# Packet Description Language (PDL)
2
3PDL is a domain specific language for writing the definition of binary protocol
4packets. Parsing and validating packets from raw bytes is tedious and error
5prone in any language. PDL generates memory safe and tailored backends for
6mulitple target languages:
7
8    - Rust
9    - C++
10    - Python
11
12## How to use PDL
13
141. Write the protocol definition
151. `cargo run my-protocol.pdl --output-format rust > my-protocol.rs`
16
17Language specific instructions are provided in another section.
18
19## Supported Features
20
21[Full reference documentation](#doc/reference.md)
22- Scalar values
23- Enumerators
24- Arrays
25- Nested packets
26- Conditional packet derivation
27- Custom field definitions
28
29## Similar projects
30
31* [Kaitai](https://kaitai.io)
32* [EMBOSS](https://github.com/kimrutherford/EMBOSS)
33* [P4](https://p4.org/p4-spec/docs/P4-16-v1.0.0-spec.html)
34