doipclient
A Diagnostic over IP (DoIP) client implementing ISO-13400-2.
What it is and what it does
Doipclient is a pure Python implementation of the Diagnostic over IP (DoIP) protocol as defined in ISO-13400 (2019). It provides a synchronous client for communicating with modern automotive ECUs over ethernet networks, translating diagnostic requests into DoIP frames and handling the underlying protocol mechanics. The package has no runtime dependencies, making it lightweight and easy to integrate.
The primary use case is as a transport layer for the udsoncan library, which implements the UDS (Unified Diagnostic Services) protocol on top of DoIP. Developers use it to send diagnostic commands to vehicle ECUs—such as reading fault codes, changing diagnostic sessions, or writing data identifiers—over automotive ethernet instead of traditional CAN or ISO-TP links. The package is actively maintained and documented, with examples showing integration with udsoncan for real-world diagnostic workflows.
Use it for:
- Integrate DoIP transport into udsoncan-based diagnostic applications for modern vehicles with ethernet connectivity.
- Develop automotive diagnostic tools that communicate with ECUs using ISO-13400 protocol over ethernet networks.
- Build vehicle testing and validation scripts that send UDS commands through DoIP to ECUs during development or production.
- Create diagnostic gateways or middleware that translate between different diagnostic protocols and DoIP.
- Implement ECU reprogramming or calibration workflows that rely on DoIP as the communication backbone.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A pure Python 3 Diagnostic over IP (DoIP) client that implements ISO-13400 (2019) for communicating with automotive ECUs over ethernet, designed primarily as a transport layer for UDS diagnostic protocols.
Yes. Doipclient is a focused, actively maintained library with zero dependencies, permissive licensing, and clear automotive diagnostics use cases. Install it if you need to communicate with modern ECUs over ethernet using DoIP/ISO-13400, especially as a transport layer for udsoncan. The low install friction and recent maintenance signal make it a safe choice for production diagnostic tooling.
Install
doipclient on PyPI
pip
pip install doipclientuv
uv add doipclientpoetry
poetry add doipclientInstalling doipclient
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained with recent releases; last commit 2026-05-13. Requires Python 3.6 or later.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install doipclient
from doipclient import DoIPClient
from doipclient.connectors import DoIPClientUDSConnector
doip_client = DoIPClient('127.0.0.1', 0x00E0)
conn = DoIPClientUDSConnector(doip_client)
# Use conn with udsoncan.client.Client for UDS diagnostics
doip_client.close()
Requires Python 3.6 or later; intended for use with automotive ECUs accessible over ethernet.
Verify before relying
- Whether the package handles all DoIP protocol features beyond the synchronous client model described.
- Performance characteristics and latency under high-frequency diagnostic requests.
- Compatibility with specific automotive OEM implementations of ISO-13400.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 93 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 126,664/month — #11,770 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: doipclient-1.2.1-py3-none-any.whl
Keywords: uds, 14229, iso-14229, diagnostic, automotive, 13400, iso-13400, doip
Tags
More Interface Engine/Protocol Translator packages
Fetches financial and market data from Yahoo…
permissive · top 1,000 on PyPI
jsonconversionConverts arbitrary Python objects to JSON…
permissive · top 5,000 on PyPI
crcmodComputes Cyclic Redundancy Check (CRC) values…
permissive · top 5,000 on PyPI
pyusbPyUSB provides Python access to USB devices on…
permissive · top 5,000 on PyPI
PyVISAPyVISA provides Python bindings to VISA…
permissive · top 5,000 on PyPI
PyVISA-pyPyVISA-py is a pure Python backend for the VISA…
permissive · top 5,000 on PyPI
pydltPyDLT reads and writes AUTOSAR DLT (Diagnostic…
permissive · top 15,000 on PyPI
udsoncanImplements the Unified Diagnostic Services…
permissive · top 15,000 on PyPI
odxtoolsodxtools parses and processes ODX (Open…
permissive · top 5,000 on PyPI
icsneopyicsneopy is a Python binding for Intrepid…
unclear · top 15,000 on PyPI
datadogProvides a Python client library to send…
permissive · top 1,000 on PyPI
dpktdpkt parses and creates TCP/IP protocol packets…
permissive · top 5,000 on PyPI
myskodaMySkoda is an async Python library that…
unclear · top 15,000 on PyPI
pmd-net-protoParses, assembles, and validates network…
copyleft · top 15,000 on PyPI
pmd-pytcpA pure-Python TCP/IP stack (Ethernet through…
copyleft · top 15,000 on PyPI