Metadata-Version: 2.1
Name: cypcap
Version: 0.5.0
Summary: A Cython based binding for modern libpcap
Home-page: https://github.com/segevfiner/cypcap
Author: Segev Finer
Author-email: segev208@gmail.com
License: BSD-3-Clause
Project-URL: Documentation, https://segevfiner.github.io/cypcap/
Project-URL: Issue Tracker, https://github.com/segevfiner/cypcap/issues
Keywords: libpcap pcap
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: System :: Networking :: Monitoring
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Provides-Extra: dev
License-File: LICENSE
License-File: NOTICE

cypcap
======
.. image:: https://img.shields.io/pypi/v/cypcap.svg
   :target: https://pypi.org/project/cypcap/
   :alt: PyPI

.. image:: https://github.com/segevfiner/cypcap/actions/workflows/docs.yml/badge.svg
   :target: https://segevfiner.github.io/cypcap/
   :alt: Docs

.. image:: https://github.com/segevfiner/cypcap/actions/workflows/build-and-test.yml/badge.svg
   :target: https://github.com/segevfiner/cypcap/actions/workflows/build-and-test.yml
   :alt: Build & Test

This package is a Cython based binding for modern libpcap versions, for Python 3.6+, attempting to
be more complete than existing and poorly maintained packages.

`Documentation <https://segevfiner.github.io/cypcap/>`_

Installation
------------
::

    $ pip install cypcap

Python 3.6+ and libpcap 1.8+ is required (Older libpcap versions can be supported if needed).

Build From Source
^^^^^^^^^^^^^^^^^
On Windows, download and extract the `Npcap SDK`_ and set the enviromnet variable ``NPCAP_SDK`` to
its location (You will also need to install Npcap, Wireshark installs it as part of its
installation).

On Linux, install the libpcap development package from your package manager. e.g. For Ubuntu::

    $ sudo apt update && sudo apt install libpcap-dev

.. _`Npcap SDK`: https://nmap.org/npcap/

Quickstart
----------
.. code-block:: python

    import cypcap

    dev = cypcap.findalldevs()[0]  # You should filter the list or let the user choose a device
    with cypcap.create(dev) as pcap:
        pcap.set_snaplen(65536)
        pcap.set_promisc(True)
        pcap.set_timeout(1000)
        pcap.activate()

        for pkthdr, data in pcap:
            if pkthdr is None:
                continue

            print(pkthdr, data)

License
-------
3-Clause BSD license (The same kind of license that libpcap uses).
