canmatrix
Decision gist · record as of 2026-08-14
Yes. Canmatrix is actively maintained, has no known vulnerabilities, installs with low friction, and is the standard tool for CAN database format conversion in Python. Install it if you work with automotive CAN protocols, need to translate between vendor database formats, or want to programmatically inspect CAN message definitions.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction: pure Python wheel with four lightweight runtime dependencies (attrs, click, typing, importlib-metadata).
- Actively maintained with recent commits and no known vulnerabilities.
License · maintenance · safety
BSD (permissive) — BSD permissive license allows commercial and private use with minimal restrictions; suitable for most projects without legal friction.
last release 2025-02-17 (543 days) · last repo commit 2026-07-29 · 1,086 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,241,586 downloads/mo, #4,171 on PyPI
Alternatives
Verify before relying
pip install canmatrix
import canmatrix
db = canmatrix.load('example.dbc')
db.save('output.json')- Whether the package supports Python versions listed in classifiers (3.4–3.11) or only modern versions in practice
- Whether arxml export is production-ready or remains basic as documented
- Exact API for loading and saving CAN database files programmatically
What it is and what it does
Canmatrix is a Python library for working with CAN (Controller Area Network) bus database files, which describe automotive and industrial communication protocols. It models CAN communication as Python objects—Boardunits, Frames, Signals, Values—and provides tools to read, write, and convert between multiple database formats used by different vendors and tools.
The library supports import from nine file formats (.dbc, .dbf, .kcd, .arxml, .yaml, .xls, .sym, .xml, .ldf, .odx) and export to eight (.dbc, .dbf, .kcd, .xls, .json, .arxml, .yaml, .sym, .xml, .lua, .scapy). It also includes command-line tools (canconvert, cancompare) for batch conversion and comparison, plus extract and merge operations for database manipulation.
Use it for
- Convert CAN database files between vendor formats for tool interoperability
- Parse and programmatically inspect CAN frame and signal definitions from automotive database files
- Generate Wireshark Lua scripts or Scapy packet definitions from CAN database metadata
- Compare two CAN database versions to identify changes in frames, signals, or message definitions
- Extract subsets of a CAN database or merge multiple databases for modular vehicle projects
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Canmatrix is actively maintained, has no known vulnerabilities, installs with low friction, and is the standard tool for CAN database format conversion in Python. Install it if you work with automotive CAN protocols, need to translate between vendor database formats, or want to programmatically inspect CAN message definitions.
Install
canmatrix on PyPI
Before you install
Low friction: pure Python wheel with four lightweight runtime dependencies (attrs, click, typing, importlib-metadata). Actively maintained with recent commits and no known vulnerabilities.
License in practice
BSD permissive license allows commercial and private use with minimal restrictions; suitable for most projects without legal friction.
Quickstart
pip install canmatrix
import canmatrix
db = canmatrix.load('example.dbc')
db.save('output.json')
Verify before relying
- Whether the package supports Python versions listed in classifiers (3.4–3.11) or only modern versions in practice
- Whether arxml export is production-ready or remains basic as documented
- Exact API for loading and saving CAN database files programmatically
Package facts
| License | BSD permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesattrsclicktypingimportlib-metadata |
| Maintenance | Actively maintained 543 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,241,586 / month, #4,171 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: ConsoleLicense :: OSI Approved :: BSD LicenseProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/Engineering |
Evidence: canmatrix-1.2-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 › “dbc file converter”
- canmatrixCanmatrix parses, manipulates, and converts CAN bus database files…
- cantoolsCantools parses automotive CAN bus database files (DBC, KCD, SYM,…
- asammdfasammdf parses, edits, and exports ASAM MDF measurement data files…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also asammdf · cantools · odxtools · tablib · ldfparser · dbf · xls2xlsx · dbfread · csvkit · autosar-data