pytun-pmd3
python-pytun fork with darwin and windows support (IPv6-ONLY)
Decision gist · record as of 2026-08-14
Yes, if you need TUN/TAP interface control on Linux or macOS and accept the copyleft license. The low install friction and lack of dependencies make it straightforward to add. However, the aging maintenance status and small user base mean you should verify that Darwin support meets your needs and be prepared to maintain a fork if critical bugs emerge.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires root or appropriate capabilities to create TUN/TAP interfaces on Linux; macOS support is partial and may require system configuration.
- Low install friction with no runtime dependencies.
- Maintenance status is aging—last commit was 2026-01-27 and the repository has only 8 stars, suggesting limited active development and a small user base.
License · maintenance · safety
copyleft license (copyleft) — Licensed under GPLv3+, a copyleft license requiring derivative works and modifications to be distributed under the same terms. Use is unrestricted for private purposes, but redistribution of modified versions must include source code.
last release 2026-01-27 (199 days) · last repo commit 2026-01-27 · 8 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 320,958 downloads/mo, #7,627 on PyPI
Alternatives
Verify before relying
pip install pytun-pmd3
import pytun
# Create a TUN interface
tun = pytun.TunTapDevice(name='tun0', flags=pytun.IFF_TUN)
tun.up()
# Read/write packets from/to the interface- Extent of Darwin/macOS support and any known limitations or missing features compared to Linux
- Whether IPv6-only mode is a hard requirement or a configuration option
- Current maintenance status and likelihood of future updates or bug fixes
What it is and what it does
pytun-pmd3 is a Python wrapper around the TUN/TAP interface creation and management APIs on Linux and macOS. It allows developers to programmatically create virtual network interfaces at the packet level, enabling use cases like network tunneling, packet filtering, and custom network protocol implementation. The package is a fork of the original pytun project with added support for Darwin (macOS) and Windows keywords, though support is described as partial.
The package has no external runtime dependencies, making installation straightforward. It supports Python 3.9 through 3.13 and requires at least Python 3.8. The codebase is aging with infrequent updates, and the small repository size suggests it serves a niche audience. Users should be aware that creating TUN/TAP interfaces typically requires elevated privileges (root or capabilities) on the host system.
Use it for
- Build VPN or tunneling applications that need direct control over virtual network interfaces
- Implement custom network protocols or packet filters at the kernel interface level
- Create network simulation or testing environments that require virtual network devices
- Develop tools for network packet capture and manipulation on macOS or Linux systems
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need TUN/TAP interface control on Linux or macOS and accept the copyleft license.
The low install friction and lack of dependencies make it straightforward to add. However, the aging maintenance status and small user base mean you should verify that Darwin support meets your needs and be prepared to maintain a fork if critical bugs emerge.
Install
pytun-pmd3 on PyPI
Before you install
Low install friction with no runtime dependencies. Maintenance status is aging—last commit was 2026-01-27 and the repository has only 8 stars, suggesting limited active development and a small user base.
Requires root or appropriate capabilities to create TUN/TAP interfaces on Linux; macOS support is partial and may require system configuration.
License in practice
Licensed under GPLv3+, a copyleft license requiring derivative works and modifications to be distributed under the same terms. Use is unrestricted for private purposes, but redistribution of modified versions must include source code.
Quickstart
pip install pytun-pmd3
import pytun
# Create a TUN interface
tun = pytun.TunTapDevice(name='tun0', flags=pytun.IFF_TUN)
tun.up()
# Read/write packets from/to the interface
Verify before relying
- Extent of Darwin/macOS support and any known limitations or missing features compared to Linux
- Whether IPv6-only mode is a hard requirement or a configuration option
- Current maintenance status and likelihood of future updates or bug fixes
Package facts
| License | copyleft license copyleft |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 199 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 320,958 / month, #7,627 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableLicense :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)Programming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9 |
Evidence: pytun_pmd3-3.0.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “tun tap interface python”
- pytun-pmd3Provides Python bindings to create and manage TUN/TAP virtual network…
- pmd-pytcpA pure-Python TCP/IP stack (Ethernet through RFC 9293 TCP) that runs…
- tap.pyProvides tools to parse, generate, and work with Test Anything…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also pmd-pytcp · dpkt · pmd-net-proto · sshuttle · pyobjc-framework-Network · pydivert · ping3 · wakeonlan · pyroute2 · pymobiledevice3