Skip to content

Frostie314159/rtap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RTAP

Radiotap parsing in rust using iterators.

Notes

Vendor namespaces

The current implementation doesn't allow for vendor namespaces. As soon as a vendor namespace is encountered the iterator will eagerly skip the subsequent bytes and continues parsing after.

Iterators

Iterators are small but not empty structures. This library creates an iterator over Radiotap fields from an iterator over bytes. The produced iterator is lazy and only parse the next field when you call next. The field iterator itself can get quite large(close to 1.1kB) so avoid copying it around. The byte iterator shouldn't be an owning iterator, since it's copied multiple times internally and this can create quite the overhead. Proof

Panics

This crate was designed to never panic and instead and return either an Err or None. We use the no_panic crate to prove, that exposed functions can in no possible way panic.

Invalid fields

If Rtap fails to parse a field it will return None, since we can't possibly guarantee that any subsequent fields were parsed correctly(i.e. it's fused).

Compiler

A nightly compiler is required, due to the use of unstable libary features. However, since three of the four used features are just iterator adaptors, so you won't get any ICEs.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE-2.0
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages