# ebroecker/canmatrix

Converting Can (Controller Area Network) Database Formats .arxml .dbc .dbf .kcd ...

Repository: https://github.com/ebroecker/canmatrix
Canonical: https://ross.abutalabs.com/products/canmatrix
Language: Python
License: BSD-2-Clause
License Family: permissive
Topics: canbus, python, dbc, arxml, dbf, kcd, sym, xlsx, json, fibex, convert, compare, modify, can, dissector
Last push: 2026-08-17T07:57:35+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 8, longevity 100
- inputs: {"age_days": 4895, "days_push": 16, "days_rel": 569, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1087, forks 440 (observed 2026-08-28T04:03:32.303868+00:00)

## What it is
Canmatrix is a Python library that reads, writes, converts, compares, and modifies CAN (Controller Area Network) database formats such as .dbc, .arxml, .dbf, .kcd, .sym, and more. It also ships CLI tools (canconvert, cancompare) and supports CAN message encoding/decoding.

## Use cases
- convert a dbc file to arxml
- read and parse can database files in python
- compare two can matrix files for differences
- encode and decode can messages from a dbc
- convert kcd to dbc
- generate wireshark lua dissector from can database
- merge or modify can signal definitions programmatically

## When to choose
- you need to convert between automotive CAN database formats like dbc, arxml, kcd, dbf, or sym
- you want to programmatically inspect or edit CAN matrices in Python
- you need CAN message encoding/decoding based on a database file
- you want to generate wireshark dissectors or scapy definitions from a CAN database

## When to avoid
- you need real-time CAN bus communication or hardware interfacing (use python-can instead)
- you work with J1939, SOME/IP, or other higher-layer protocols not covered by CAN matrices
- you need a GUI tool for editing CAN databases

## Facets
- artifact type: library
- maturity: active
- function: parser, serialization, cli, developer-tools
- domain: files, developer-tools, parsers
- platform: python, cli, cross-platform
- tags: canbus, dbc, arxml, kcd, can-database, file-conversion, automotive, lin-bus, wireshark

## Member repositories
- ebroecker/canmatrix (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:32.303868+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:49:26.933011+00:00, confidence not recorded.
  - readme: https://github.com/ebroecker/canmatrix (fetched 2026-08-28T04:03:32.303868+00:00, sha 3d7aa410c096)
  - registry_pypi: https://pypi.org/pypi/canmatrix/json (fetched 2026-08-29T12:52:13.703234+00:00, sha b7a6992e88a1)
- Data as of 2026-08-30T08:39:29.467469+00:00.
