<commit_before># libpnet

Linux ∪ OS X Build Status: [![Linux ∪ OS X Build Status](https://travis-ci.org/libpnet/libpnet.svg)](https://travis-ci.org/libpnet/libpnet)

Windows Build Status: [![Windows Build Status](https://ci.appveyor.com/api/projects/status/9gq1dekigj03u1ym?svg=true)](https://ci.appveyor.com/project/mrmonday/libpnet)

Discussion and support: [#libpnet on freenode](http://webchat.freenode.net/?channels=%23libpnet) /
[#rust on irc.mozilla.org](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust).

`libpnet` provides a cross-platform API for low level networking using Rust.

There are four key components:

 * The packet module, allowing safe construction and manipulation of packets
 * The pnet_packet crate, providing infrastructure for the packet module
 * The transport module, which allows implementation of transport protocols
 * The datalink module, which allows sending and receiving data link packets directly

## Why?

There are lots of reasons to use low level networking, and many more to do it using Rust. A few are
outlined here:

### Developing Transport Protocols
<commit_msg>Auto merge of #85 - mrmonday:travis-badge, r=mrmonday<commit_after># libpnet

Linux ∪ OS X Build Status: [![Linux ∪ OS X Build Status](https://travis-ci.org/libpnet/libpnet.svg?branch=master)](https://travis-ci.org/libpnet/libpnet)

Windows Build Status: [![Windows Build Status](https://ci.appveyor.com/api/projects/status/9gq1dekigj03u1ym?svg=true)](https://ci.appveyor.com/project/mrmonday/libpnet)

Discussion and support: [#libpnet on freenode](http://webchat.freenode.net/?channels=%23libpnet) /
[#rust on irc.mozilla.org](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust).

`libpnet` provides a cross-platform API for low level networking using Rust.

There are four key components:

 * The packet module, allowing safe construction and manipulation of packets
 * The pnet_packet crate, providing infrastructure for the packet module
 * The transport module, which allows implementation of transport protocols
 * The datalink module, which allows sending and receiving data link packets directly

## Why?

There are lots of reasons to use low level networking, and many more to do it using Rust. A few are
outlined here:

### Developing Transport Protocols

{'fraction_non_alphanumeric': 0.10686359687228497, 'fraction_numerical': 0.008688097306689836, 'mean_word_length': 5.275204359673024, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1607419', 'n_tokens_mistral': 730, 'n_tokens_neox': 691, 'n_words': 229}