├── .gitignore ├── README.md ├── assets ├── architecture.png ├── chat.png └── effect.gif ├── composer.json └── src ├── CanalClient.php ├── CanalConnectorFactory.php ├── Fmt.php ├── ICanalConnector.php ├── Message.php ├── adapter ├── CanalConnectorBase.php ├── clue │ └── CanalConnector.php ├── socket │ ├── CanalConnector.php │ └── TcpClient.php └── swoole │ └── CanalConnector.php ├── protocol ├── CanalProtocol.proto ├── Com │ └── Alibaba │ │ └── Otter │ │ └── Canal │ │ └── Protocol │ │ ├── Ack.php │ │ ├── ClientAck.php │ │ ├── ClientAuth.php │ │ ├── ClientRollback.php │ │ ├── Column.php │ │ ├── Compression.php │ │ ├── Dump.php │ │ ├── Entry.php │ │ ├── EntryType.php │ │ ├── EventType.php │ │ ├── Get.php │ │ ├── Handshake.php │ │ ├── Header.php │ │ ├── HeartBeat.php │ │ ├── Messages.php │ │ ├── Packet.php │ │ ├── PacketType.php │ │ ├── Pair.php │ │ ├── RowChange.php │ │ ├── RowData.php │ │ ├── Sub.php │ │ ├── TransactionBegin.php │ │ ├── TransactionEnd.php │ │ ├── Type.php │ │ └── Unsub.php ├── EntryProtocol.proto └── GPBMetadata │ ├── CanalProtocol.php │ └── EntryProtocol.php └── sample └── client.php /.gitignore: -------------------------------------------------------------------------------- 1 | composer.lock 2 | .idea/ 3 | test/ 4 | vendor/ 5 | .php_cs.cache -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/README.md -------------------------------------------------------------------------------- /assets/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/assets/architecture.png -------------------------------------------------------------------------------- /assets/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/assets/chat.png -------------------------------------------------------------------------------- /assets/effect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/assets/effect.gif -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/composer.json -------------------------------------------------------------------------------- /src/CanalClient.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/CanalClient.php -------------------------------------------------------------------------------- /src/CanalConnectorFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/CanalConnectorFactory.php -------------------------------------------------------------------------------- /src/Fmt.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/Fmt.php -------------------------------------------------------------------------------- /src/ICanalConnector.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/ICanalConnector.php -------------------------------------------------------------------------------- /src/Message.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/Message.php -------------------------------------------------------------------------------- /src/adapter/CanalConnectorBase.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/adapter/CanalConnectorBase.php -------------------------------------------------------------------------------- /src/adapter/clue/CanalConnector.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/adapter/clue/CanalConnector.php -------------------------------------------------------------------------------- /src/adapter/socket/CanalConnector.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/adapter/socket/CanalConnector.php -------------------------------------------------------------------------------- /src/adapter/socket/TcpClient.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/adapter/socket/TcpClient.php -------------------------------------------------------------------------------- /src/adapter/swoole/CanalConnector.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/adapter/swoole/CanalConnector.php -------------------------------------------------------------------------------- /src/protocol/CanalProtocol.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/CanalProtocol.proto -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Ack.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Ack.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/ClientAck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/ClientAck.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/ClientAuth.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/ClientAuth.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/ClientRollback.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/ClientRollback.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Column.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Column.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Compression.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Compression.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Dump.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Dump.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Entry.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Entry.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/EntryType.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/EntryType.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/EventType.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/EventType.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Get.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Get.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Handshake.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Handshake.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Header.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Header.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/HeartBeat.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/HeartBeat.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Messages.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Messages.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Packet.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Packet.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/PacketType.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/PacketType.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Pair.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Pair.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/RowChange.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/RowChange.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/RowData.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/RowData.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Sub.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Sub.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/TransactionBegin.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/TransactionBegin.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/TransactionEnd.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/TransactionEnd.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Type.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Type.php -------------------------------------------------------------------------------- /src/protocol/Com/Alibaba/Otter/Canal/Protocol/Unsub.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/Com/Alibaba/Otter/Canal/Protocol/Unsub.php -------------------------------------------------------------------------------- /src/protocol/EntryProtocol.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/EntryProtocol.proto -------------------------------------------------------------------------------- /src/protocol/GPBMetadata/CanalProtocol.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/GPBMetadata/CanalProtocol.php -------------------------------------------------------------------------------- /src/protocol/GPBMetadata/EntryProtocol.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/protocol/GPBMetadata/EntryProtocol.php -------------------------------------------------------------------------------- /src/sample/client.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwenge/canal-php/HEAD/src/sample/client.php --------------------------------------------------------------------------------