A viewer for CAN databases that runs in your browser or as a desktop app. Open a DBC
file and browse its messages, signals, bit layouts, network and value tables. Decode
and encode frames, replay a candump or Vector ASC log through the database, compare two
versions, export the lists as CSV or JSON and a message as C code, and edit messages and
signals and save the result as DBC. ARXML, KCD, SYM, Excel (.xlsx) and a few more
formats are imported through canmatrix, with known limits that the
format reference measures for each. Files are read on your
machine and never uploaded; the app makes no request outside its own origin and works
offline.
Once the repository is public, the web app is published with GitHub Pages at
joshualeichsering.github.io/CanViewer/app,
next to the documentation at
joshualeichsering.github.io/CanViewer.
Open it and drop examples/demo.dbc onto the window. Until then,
run it locally (see Develop) and read the documentation in
docs/, starting with the user guide.
The desktop app for Windows, macOS and Linux is offline from the start. The install guide takes you from a release on the repository's GitHub Releases page to a running app, and back out.
git clone --recurse-submodules https://github.com/JoshuaLeichsering/CanViewer.git
cd CanViewer
npm ci
npm run dev # the app on http://localhost:5173
npm test # unit and component tests, and the corpus suitesThe developer guide covers the setup, the repository layout,
the architecture, the
tests and baselines and the
release process. CONTRIBUTING.md lists the
checks CI runs, to run them before you push; the decision records
explain why things are the way they are. Planned work is in BACKLOG.md.
CanViewer is free software under the GNU General Public License, version 2 or (at your option) any later version, with no warranty. COPYRIGHT holds the notice and an additional permission for the Windows build, which links Microsoft's WebView2 loader and Visual C++ runtime; LICENSE is the text of version 2, and LICENSE-GPL-3.0 that of version 3, under which the web app and the desktop packages are distributed because they include Apache-2.0 parts. The third-party components CanViewer ships, and their licenses, are listed in THIRD_PARTY_NOTICES.md; the app shows all of these under About CanViewer in its settings menu. To report a vulnerability, see SECURITY.md.

