DBC Utility is now maintained under the BusAudit ecosystem. This repo contains the DBC Utility code. If you previously used the old repo, please update bookmarks, CI and remote to: https://github.com/busaudit/dbcUtility
See pinned issue for more details.
A PyQt5-based GUI application for viewing, editing, comparing, and managing CAN DBC files.
Browse and inspect CAN messages and signals in a hierarchical tree structure
Full-featured editor for modifying messages and signals with intuitive controls
dbcUtility/
├── main.py # Application entry point
├── pyproject.toml # Project metadata and dependencies
├── src/ # Source code
│ ├── DBCUtility.py # Main window, View tab, app shell
│ ├── dbc_editor.py # Core DBC processing logic (load/save/edit)
│ ├── dbc_editor_ui.py # Edit tab UI, message/signal dialogs
│ ├── dbc_comparator.py # Comparison engine (text diff, structured diff)
│ ├── dbc_comparator_ui.py # Compare tab UI (side-by-side, unified, structured)
│ ├── multiplex_support.py # Multiplexed signal classification and filtering
│ ├── message_layout_visualizer.py # Bit-level message layout grid
│ ├── home_screen.py # Home screen and recent files
│ ├── about_dialog.py # About dialog
│ ├── search_module.py # Unified search widget
│ └── resource_utils.py # Resource path resolution (dev + PyInstaller)
├── scripts/ # Build and utility scripts
│ ├── build_exe.py # Windows PyInstaller build
│ ├── build_linux.py # Linux distribution build
│ ├── release.py # Windows release script
│ ├── release_linux.py # Linux release script
│ ├── clean_build.py # Clean build directories
│ └── create_zip.py # Archive creation
├── docs/ # Documentation
│ ├── LINUX_BUILD_SETUP.md # Linux build setup guide
│ └── CODEBASE_INDEX.md # Codebase architecture reference
├── icons/ # Application icons (app_icon.ico, app_icon.png)
├── images/ # Screenshots for README
├── tests/ # Test files
└── README.md
Clone the repository:
bash
git clone https://github.com/busaudit/dbcUtility.git
cd dbcUtility
Install UV (if not already installed):
bash
pip install uv
Install dependencies using UV:
bash
uv sync
Run the application:
bash
uv run dbcUtility
DBCUtility-Linux-x86_64-v1.0.3.tar.gz from releasestar -xzf DBCUtility-Linux-x86_64-v1.0.3.tar.gzInstall: cd DBCUtility-Linux-x86_64-v1.0.3 && ./install.sh
Download AppImage (alternative):
DBCUtility-Linux-x86_64-v1.0.3.AppImage from releaseschmod +x DBCUtility-Linux-x86_64-v1.0.3.AppImageRun: ./DBCUtility-Linux-x86_64-v1.0.3.AppImage
Build from source: ```bash git clone https://github.com/busaudit/dbcUtility.git cd dbcUtility
# Using UV (recommended) uv sync uv run python main.py
# Or using pip pip install -r requirements.txt python main.py ```
Build Linux Distribution (for distribution):
bash
uv run python scripts/build_linux.py
# See docs/LINUX_BUILD_SETUP.md for detailed instructions
Create Complete Release:
bash
uv run python scripts/release_linux.py
| Library | License | Copyright |
|---|---|---|
| PyQt5 | GPL v3 | The Qt Company Ltd. |
| cantools | MIT | Erik Moqvist |
| QtAwesome | MIT | Spyder IDE contributors |
| PyInstaller | GPL v2 with exception | PyInstaller Development Team |
The application provides a tabbed interface with four sections:
| Module | Purpose |
|---|---|
main.py |
Application entry point |
src/DBCUtility.py |
Main window, View tab, tab navigation |
src/dbc_editor.py |
Core DBC load/save/edit logic |
src/dbc_editor_ui.py |
Edit tab UI, message/signal edit dialogs |
src/dbc_comparator.py |
Text diff engine, structured semantic diff |
src/dbc_comparator_ui.py |
Compare tab UI (3 view modes) |
src/multiplex_support.py |
Multiplexer classification, filtering, validation |
src/message_layout_visualizer.py |
Bit-level CAN message grid |
src/home_screen.py |
Home screen, recent files manager |
src/about_dialog.py |
About dialog |
src/search_module.py |
Unified search widget |
src/resource_utils.py |
Resource path resolution |
# Windows
uv run python scripts/build_exe.py
# Linux
uv run python scripts/build_linux.py
The executable will be created in the dist/ directory.
# Windows release
uv run python scripts/release.py
# Linux release
uv run python scripts/release_linux.py
This will: - Build the executable - Create a versioned release package - Include all necessary documentation - Generate release notes
Release packages are created in release-v{version}/ (Windows) or release-linux-v{version}/ (Linux).
The tests/ directory contains test files for:
- DBC file parsing and saving
- Comparison engine (text diff, structured diff)
- Signal and message manipulation
- Comment handling
This project is licensed under the GNU General Public License v3 (GPL v3) - see the LICENSE file for details.
| Component | License |
|---|---|
| DBC Utility | GPL v3 |
| PyQt5 | GPL v3 (compatible) |
| cantools | MIT (compatible) |
| QtAwesome | MIT (compatible) |
| PyInstaller | GPL v2 with exception (compatible) |
We welcome contributions! Please see our Contributing Guidelines for detailed information.
Simple. Clean. Working. Feature-rich DBC editor.
$ claude mcp add dbcUtility \
-- python -m otcore.mcp_server <graph>