Canal

Input—per 1M tokens
Output—per 1M tokens
Context—tokens
WeightsClosed

About

Canal is a free, self-hosted project that parses MySQL binary logs so applications can consume database changes incrementally. It acts like a MySQL replica, requesting binlog data from a master and parsing the resulting 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 delivers change records to Kafka and RocketMQ; RabbitMQ and Pulsar are also listed as server modes in the quick start. Its client-server protocol uses Protocol Buffers 3.0, with Java, C#, Go, and Python clients described. 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, although the default Docker setup runs only one Canal instance per Docker instance. The repository identifies an Apache-2.0 license.

Who it is for

Canal suits teams that need to capture MySQL changes for downstream processing and can operate a self-hosted project. Its described clients and message-system options offer several integration paths.

What is good

  • Free under the Apache-2.0 license
  • Captures changes from listed MySQL versions
  • Delivers records to Kafka and RocketMQ
  • Clients are described for four languages
  • Includes Prometheus monitoring

What to know first

  • Default Docker setup runs one Canal instance
  • Self-hosted deployment is required
  • MySQL source support is limited to listed versions

Verdict

Canal provides a self-hosted route for parsing MySQL binlogs and sending change records onward. Check the supported source versions and Docker instance limit against your deployment needs.

Compared on container networking software

Deployment model
self-hostedgithub.com
Capture method
log-basedgithub.com
Schema evolution
Yesgithub.com

Facts

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

Best Canal alternatives

See all 12