2 releases

new 0.1.1 Apr 27, 2025
0.1.0 Apr 20, 2025

#254 in Machine learning

Download history 138/week @ 2025-04-20

138 downloads per month

MIT license

67KB
1.5K SLoC

Nprint-rs

Rust library that adapt nprint in Rust.

Why

nPrint is a standard data representation for network traffic, designed for direct use with machine learning algorithms, eliminating the need for feature engineering in various traffic analysis tasks. Developing a Rust implementation of nPrint will simplify the creation of network systems that leverage real-world ML deployments, rather than just training and deploying models offline.

Documentation

Installation

To use Nprint-rs in your project, add the following to your Cargo.toml:

[dependencies]
nprint-rs = "*"

Or simply by executing:

cargo add nprint-rs

Usage

Documentation here

Roadmap

This is an open roadmap, if you want to request or update something don't hesitate to open an issue and then we'll talk about it. More information on how to do it in CONTRIBUTING

Features

  • First working parsing ✔
  • Structures to handle different packets/mbuf/[u8]/vec[u8]
  • Convert PCAP to nprint
  • Parse a set of packets per connection (1/2/5/10/20/...) ✔
  • Parse protocols:
    • IPv4 ✔
    • TCP ✔
    • Ethernet
    • IPv6
    • UDP ✔
    • QUIC
    • ICMP
    • Payload

Miscellaneous

  • Better Readme ✔
  • Documentation ✔
  • Set up test github actions ✔

How to contribute

If you have any doubts or need additional information, don't hesitate to ask for more information in the comments section of an issue. Go to CONTRIBUTING

Dependencies

~2.8–4.5MB
~78K SLoC