Skip to content
SPECIFICTION
Get listed

Canal

github.com

Free plan macOSLinuxAPISelf-hosted
Visit github.com
Spec score 8.7 #3 of 23 in Change Data Capture Software

What it is

Canal is a free, self-hosted project that parses MySQL binary logs so applications can subscribe to and consume database changes incrementally. It acts like a MySQL replica, requesting binlog data from a master and parsing the events. Listed uses include database mirroring and real-time backup, index maintenance, cache refresh, and business-logic processing. The README lists source versions MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x. Canal can send change records to Kafka and RocketMQ; the quick start also lists RabbitMQ and Pulsar server modes. Its Protocol Buffers 3.0 client-server design has clients for Java, C#, Go, and Python. Canal Admin provides a web interface for managing configuration, tasks, and logs, and the project lists native Prometheus monitoring. Docker images and a Docker QuickStart are available, but the default setup runs only one Canal instance per Docker instance. The project is licensed under Apache-2.0.

Spec sheet

Purpose
Canal parses MySQL database incremental logs and provides incremental data subscription and consumption.Read 30 Sep 2026 · github.com
Deployment
The README says Canal provides native Docker image support.Read 30 Sep 2026 · github.com
Security
The v1.1.8 release notes list SSL/TLS connections to source MySQL and RabbitMQ SSL authentication support.Read 29 Sep 2026 · github.com
Support
The project asks users to report bugs and feature requests through GitHub issues.Read 29 Sep 2026 · github.com
License
The repository identifies its license as Apache-2.0.Read 30 Sep 2026 · github.com
Additional adapters
The v1.1.8 release notes announce a ClickHouse adapter.Read 30 Sep 2026 · github.com
Administration
Canal Admin provides web based dynamic management, including online configuration, task, and log operations.Read 30 Sep 2026 · github.com
Client languages
The project describes a Protocol Buffers 3.0 client-server protocol and lists Java, C#, Go, and Python clients.Read 29 Sep 2026 · github.com
Client protocol
Canal uses a client server design with Protocol Buffers 3.0, and clients can be implemented in different languages.Read 30 Sep 2026 · github.com
Database support
The README lists MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x as supported source versions.Read 29 Sep 2026 · github.com
Deployment limit
The Docker QuickStart says one Docker instance can run only one Canal instance with the default setup.Read 29 Sep 2026 · github.com
How it works
Canal emulates a MySQL slave, requests the dump protocol from a MySQL master, and parses the binary log stream it receives.Read 30 Sep 2026 · github.com
Message queues
Canal can send change records to Kafka and RocketMQ; its quick start also lists RabbitMQ and Pulsar as server modes.Read 29 Sep 2026 · github.com
Message systems
Canal supports native delivery to Kafka and RocketMQ, and the README also describes publishing change records to message queues.Read 30 Sep 2026 · github.com
Monitoring
The README says Canal has native Prometheus monitoring support.Read 30 Sep 2026 · github.com
MySQL versions
The README lists source MySQL versions 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x as supported.Read 30 Sep 2026 · github.com
Recent compatibility
The v1.1.8 release notes list adaptation for MySQL 8.4, MariaDB 11, Percona 8.0, and PolarDB-X 2.0.Read 30 Sep 2026 · github.com
Security reporting
The security policy directs vulnerability reports to Alibaba Security Response Center and says reporters will be kept informed while fixes are pursued.Read 30 Sep 2026 · github.com
Transport security
The v1.1.8 release notes list SSL/TLS connections to source MySQL databases and RabbitMQ SSL authentication support.Read 30 Sep 2026 · github.com
Use cases
Listed uses include database mirroring, real-time database backup, index building and maintenance, business cache refresh, and incremental data processing.Read 30 Sep 2026 · github.com
Vulnerability reporting
The security policy directs vulnerability reports to Alibaba Security Response Center.Read 29 Sep 2026 · github.com

Plans and prices

Canal Free Apache-2.0 open-source project Read 30 Sep 2026 · github.com

Every Canal plan and price →

Strong points and limits

Strong points

  • Free under the Apache-2.0 license
  • Supports listed MySQL source versions through 8.0.x
  • Delivers change records to Kafka and RocketMQ
  • Provides Canal Admin web management
  • Lists native Prometheus monitoring

Limits

  • Self-hosted deployment is required
  • Default Docker setup runs one Canal instance per Docker instance
  • Listed source-version range ends at MySQL 8.0.x

Who it suits

Canal suits teams building self-hosted pipelines from MySQL changes into applications or message systems. Its listed clients and administration tools may suit teams using Java, C#, Go, or Python.

Canal in depth

Read the full write-up

Canal is a self-hosted change-data-capture tool for teams that need to consume MySQL binlog events in downstream systems. It is best suited to users who can operate the service themselves and already have a message queue or application client in mind. Its appeal is a free, open-source path from database changes to several delivery options; its one-instance Docker QuickStart default and database-version requirements deserve attention before deployment.

Overview

Canal behaves like a MySQL replica: it requests binary-log data from the source master and parses the events into incremental changes. That log-based approach fits database mirroring and real-time backup, as well as downstream work such as index maintenance, cache refresh, and business-logic processing. Because it runs self-hosted, the operating burden sits with the team adopting it rather than with a hosted service.

The repository uses the Apache-2.0 license. Canal is a focused capture component, not a general-purpose database platform: its value depends on having a compatible source and a consumer or destination ready to use the changes.

Key features

Source compatibility and delivery

The README lists MySQL 5.1.x, 5.5.x, 5.6.x, 5.7.x, and 8.0.x as supported source versions. Release notes for v1.1.8 also describe adaptation for MySQL 8.4, MariaDB 11, Percona 8.0, and PolarDB-X 2.0. Teams on less common or newer source versions should verify compatibility in their deployment plan rather than assume that the README range tells the whole story.

Canal sends changes to Kafka and RocketMQ; its QuickStart also presents RabbitMQ and Pulsar server modes. A ClickHouse adapter was announced in v1.1.8. These choices make Canal useful where a downstream pipeline already speaks one of those systems, but they do not remove the need to configure and run the destination infrastructure.

Clients, operations, and security

The client-server protocol uses Protocol Buffers 3.0, with client implementations listed for Java, C#, Go, and Python. That gives application teams several language options without making Canal itself a client library. Canal Admin adds a Web UI for dynamic configuration, task, and log management, while native Prometheus monitoring can support operations teams already using that monitoring system.

Docker images and a repository QuickStart lower the barrier to a trial deployment. The QuickStart default allows only one Canal instance per Docker instance, so deployments needing multiple instances should account for that constraint. The v1.1.8 release notes include SSL/TLS connections to source MySQL and RabbitMQ SSL authentication support. Vulnerability reports are directed to Alibaba Security Response Center, and bug reports and feature requests go through GitHub issues.

Pricing

Canal has one free plan: free. It is the Apache-2.0 open-source project, so there is no paid tier in this offering to unlock additional capture features. The free plan suits teams able to host and maintain the software themselves; the trade-off is that deployment and operations remain their responsibility.

Platforms

Canal is self-hosted, with API, Linux, and macOS among its listed platforms. Its supported-platform details also name Kubernetes, Linux, ACK Distro, AECP, and SOFAStack. Docker images provide another deployment route, but the default QuickStart's one-instance-per-Docker-instance limit matters when sizing a containerized setup.

Who it's for

Canal is a strong fit for engineering teams that need log-based MySQL change capture, can run their own infrastructure, and want to route updates into Kafka, RocketMQ, RabbitMQ, Pulsar, or compatible clients. Its administration and Prometheus support are useful for teams that need to manage tasks and observe a running installation. It is a poorer fit for buyers seeking a hosted service, a turnkey data pipeline, or a solution whose source database falls outside their verified compatibility needs.

Pros and cons

Pros: Free under Apache-2.0, making self-hosted evaluation possible without a software charge.

Pros: Multiple queue options and Java, C#, Go, and Python clients give teams several routes to consume captured changes.

Pros: Canal Admin and native Prometheus monitoring address configuration and operational visibility.

Cons: Self-hosting means the adopting team must operate the service and its deployment environment.

Cons: The Docker QuickStart default runs one Canal instance per Docker instance, which constrains a straightforward multi-instance setup.

Cons: Source compatibility is version-specific, so teams need to match their database against the stated support and adaptation details.

Alternatives

The alternatives below are listed under other software categories, so they are not direct replacements for Canal's MySQL change-capture role. For Kubernetes networking, Calico Open Source is a free option with community-driven support and maintenance, in-memory data retention, and unlimited clusters; choose it when those networking capabilities, rather than binlog capture, are the need.

VMware Workstation Pro is free with no subscription or license key required for 64-bit Intel or AMD Windows or Linux hosts, making it relevant for local virtualization rather than data capture. OVN-Kubernetes is another free, self-hosted option for users evaluating Kubernetes networking.

Flannel is a free Apache 2.0 Kubernetes networking project, while Skupper is a free option spanning API, Linux, macOS, and self-hosted platforms. Spiderpool is a free Apache License 2.0 Kubernetes networking solution; Terway is free, but trunking is unavailable in self-hosted clusters. Antrea is free under Apache License 2.0 and requires a Kubernetes cluster and the Open vSwitch kernel module on every Kubernetes node. Choose among these when Kubernetes networking is the problem to solve, not when the priority is capturing MySQL changes.

Verdict

Choose Canal if your team wants free, self-hosted MySQL binlog capture and can operate the service and its downstream path. Its combination of queue choices, language clients, administration, and monitoring makes it a practical fit for an existing data pipeline. Look elsewhere if you need hosted operation, or if the one-instance Docker default and source-version constraints do not suit your deployment.

Verdict

Canal provides a self-hosted route for consuming MySQL binlog changes, with several message-system options and client languages. Its Docker QuickStart default permits one Canal instance per Docker instance.

Where Specifiction places it

Alternatives to CanalAll alternatives →