Canal vs pgstream
Canal
github.compgstream
xata.ioSide by side
| Figure | Canal | pgstream |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Change Data Capture Software | 8.7 (#3) | 7.9 (#11) |
| Deployment | The README says Canal provides native Docker image support. | pgstream can run as a standalone CLI or be embedded as a Go library, and requires PostgreSQL as a dependency. |
| License | The repository identifies its license as Apache-2.0. | The project is licensed under Apache License 2.0. |
| Purpose | Canal parses MySQL database incremental logs and provides incremental data subscription and consumption. | pgstream is an open-source CDC tool for replicating PostgreSQL data and DDL schema changes to targets. |
| Security | The v1.1.8 release notes list SSL/TLS connections to source MySQL and RabbitMQ SSL authentication support. | The product page describes built-in anonymization for masking production data as it is replicated to development or staging. |
| Support | The project asks users to report bugs and feature requests through GitHub issues. | The project README directs users with questions or issues to open a GitHub issue for community assistance. |
Plans
In their own words
Canal
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.
pgstream
pgstream is a free, open-source tool for moving PostgreSQL data and schema changes to other systems. Run it as a command-line program or embed it as a Go library; it is self-hosted and requires PostgreSQL. Destinations include PostgreSQL, Elasticsearch or OpenSearch, Kafka, and webhooks. It can take an initial or on-demand snapshot for bulk loads and point-in-time copies, and tracks schema changes so receiving systems can reflect table updates. During replication, column values can be transformed with greenmask, neosync, go-masker, or custom transformers, including to mask production data headed for development or staging. Kafka support includes schema-based partitioning. Installation options include a Go binary, building from source, and Homebrew on macOS or Linux. The project uses the Apache License 2.0 and costs nothing. Its initial release has constraints: one Kafka topic, the wal2json PostgreSQL plugin, no row-level filtering, and a primary-key or unique non-null column requirement. Community questions and issues go through GitHub issues.