Canal
github.com
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
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
- Change Data Capture Software#3 of 238.7