Crates.io | wsdf |
lib.rs | wsdf |
version | 0.1.2 |
source | src |
created_at | 2023-08-03 07:58:33.051208 |
updated_at | 2023-08-04 14:49:13.594794 |
description | Proc-macro based Wireshark Dissector Framework |
homepage | https://github.com/ghpr-asia/wsdf |
repository | https://github.com/ghpr-asia/wsdf |
max_upload_size | |
id | 933486 |
size | 71,191 |
wsdf (Wireshark Dissector Framework) is a proc-macro based framework to generate Wireshark dissectors from your Rust data types. Using wsdf, you can write dissectors in a declarative way, all from within Rust.
Here is what a dissector for UDP looks like:
#[derive(wsdf::Protocol)]
#[wsdf(decode_from = [("ip.proto", 17)])]
struct UDP {
src_port: u16,
dst_port: u16,
length: u16,
checksum: u16,
#[wsdf(subdissector = ("udp.port", "dst_port", "src_port"))]
payload: Vec<u8>,
}
Check out the docs for more information. Some examples are also available, including a simple dissector for DNS, showcased below.
wsdf has been tested on Linux against Wireshark 4.0.
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.