Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. MQTT
  3. can2mqtt

can2mqtt

MITRustv3.0.1

A bidirectional, configurable bridge between CAN-Bus and MQTT with flexible data conversion modes.

GitHubGitHub
102 stars26 forks0 contributors

What is can2mqtt?

can2mqtt is a Rust-based bridge that connects CAN-Bus networks to MQTT brokers, enabling bidirectional communication between industrial/automotive CAN systems and IoT messaging protocols. It solves the problem of integrating legacy CAN devices into modern IoT ecosystems by mapping CAN IDs to MQTT topics with configurable data conversion.

Target Audience

Developers and engineers working with industrial automation, automotive systems, or IoT projects that need to interface CAN-Bus devices with MQTT-based messaging infrastructure.

Value Proposition

Developers choose can2mqtt for its simplicity, configurability, and extensibility—it provides a lightweight, self-contained solution with flexible data conversion modes and the ability to add custom converters without complex dependencies.

Overview

CAN-Bus -- MQTT bridge: bidirectional, configurable and extendable

Use Cases

Best For

  • Integrating automotive CAN-Bus data into home automation systems
  • Bridging industrial CAN devices to cloud-based IoT platforms
  • Prototyping CAN-to-MQTT interfaces for embedded systems
  • Converting CAN sensor data to MQTT for real-time monitoring
  • Creating virtual CAN interfaces for testing IoT applications
  • Extending legacy CAN networks with modern messaging protocols

Not Ideal For

  • Systems requiring dynamic, real-time configuration changes without service restarts
  • Projects needing advanced CAN bus message filtering or preprocessing before MQTT publishing
  • Teams without Rust programming expertise for custom data conversion modes
  • Environments preferring graphical or web-based management over command-line and CSV configuration

Pros & Cons

Pros

Bidirectional Flexibility

Supports full two-way communication with optional unidirectional modes, allowing tailored integration for specific use cases as shown in the direction mode settings.

Simple CSV Configuration

Uses a straightforward CSV file to map CAN IDs to MQTT topics, making setup quick and human-readable without complex programming.

Extensible Converter System

Allows users to implement custom conversion modes in Rust by following the template in the README, providing adaptability for unique data formats.

Lightweight and Portable

Offers statically linked binaries with no dependencies, easy to deploy on embedded systems like Raspberry Pi, as demonstrated in the installation instructions.

Cons

CAN Interface Complexity

Requires setting up socket-can interfaces, which can be challenging on non-Linux systems or with specific hardware, as admitted in the 'How do I get a socket-can interface?' section.

Limited Built-in Converters

Only includes basic conversion modes; advanced data handling necessitates custom Rust development, adding overhead for non-standard use cases.

Static Configuration Model

Relies on a static CSV file that must be edited and reloaded for changes, lacking dynamic or programmatic configuration options for real-time adjustments.

Frequently Asked Questions

Quick Stats

Stars102
Forks26
Contributors0
Open Issues0
Last commit5 months ago
CreatedSince 2016

Tags

#embedded-systems#can-bus#mqtt#converter#iot-bridge#automotive#industrial-iot#message-broker#bus#linux#raspberry-pi#bridge#rust#can#socketcan#data-conversion

Built With

M
MUSL
R
Rust

Included in

MQTT2.3k
Auto-fetched 1 day ago

Related Projects

zigbee2mqttzigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨

Stars15,751
Forks2,053
Last commit2 days ago
BambuddyBambuddy

Your Bambu Lab. No Cloud. Your Rules. Self-hosted command center for Bambu Lab — from one A1 to an entire print farm.

Stars3,141
Forks452
Last commit1 day ago
zwavejs2mqttzwavejs2mqtt

Full featured Z-Wave Control Panel UI and MQTT gateway. Built using Nodejs, and Vue/Vuetify

Stars1,247
Forks252
Last commit2 days ago
smartthings-mqtt-bridgesmartthings-mqtt-bridge

Bridge between SmartThings and MQTT

Stars376
Forks230
Last commit11 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub