prefix-trie version 0.8 has added, a lot of the pure trie operations are already covered. Here is a list of related features that would be nice to consider.
Serialization / persistence:
- Zero-copy deserialization via rkyv or a flat binary format — useful for large routing tables (full DFZ is ~1M prefixes) where rebuild-from-iterator is too slow
- Streaming serde with framing (length-prefixed records) so you can append to a file or read from a socket without loading everything into memory
BGP / routing domain utilities:
- ROA validation — given a trie of ROA entries (prefix, max_length, origin_asn), validate whether a BGP announcement is RPKI-valid, invalid, or not-found
- Covering/covered prefix queries as first-class methods — ipnet-trie already has matches(), but you could add supernets_of(prefix) and subnets_of(prefix) with clearer semantics
- Prefix overlap detection — find all prefix pairs that overlap (useful for route leak analysis)
- Best-path simulation — store multiple values per prefix (e.g., multiple BGP routes) and select based on a comparator
Analytics:
- Prefix length distribution — histogram of /8 through /32 (v4) or /48 through /128 (v6) counts
- Address space coverage — what percentage of a given supernet is covered by entries in the trie
- Trie depth / density stats — useful for understanding routing table growth
Concurrency:
- A read-optimized concurrent wrapper (e.g., Arc<RwLock> with a nicer API, or a copy-on-write snapshot mechanism for lock-free reads)
Interop:
- Import/export in MRT TABLE_DUMP_V2 format (the standard BGP routing table dump format)
- Import from CSV/TSV (common for RPKI VRP feeds, IRR data)
- Conversion to/from ip_network_table (the other popular Rust IP lookup crate)
prefix-trieversion 0.8 has added, a lot of the pure trie operations are already covered. Here is a list of related features that would be nice to consider.Serialization / persistence:
BGP / routing domain utilities:
Analytics:
Concurrency:
Interop: