Skip to content

new features worth considering #4

@digizeph

Description

@digizeph

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions