This create offers:
Features:
Put the desired version of the crate into the dependencies
section of your Cargo.toml
:
toml
[dependencies]
mysqlbinlog-network = {git="https://github.com/jiuker/mysqlbinlog_network"}
```rust use mysqlbinlog_network::client::sync::{OffsetConfig, Runner};
fn main() { // Use crate[mysql] opt url to connect source // ServerID is unique, let mut runner = Runner::new("mysql://root:123456@127.0.0.1:3306", 1111).unwrap(); runner .startsync(OffsetConfig { // pos: Some(("binlog.000002".tostring(), 34834)), pos: None, gtid: Some("0575a804-6403-11ea-8d3d-e454e8d4a4fe:1-1467870".into()), }) .unwrap(); loop { let e = runner.get_event().unwrap(); dbg!(e); } } output:
[src/main.rs:14] e = Event { header: EventHeader { timestamp: 0, eventtype: RotateEvent, serverid: 2, eventsize: 43, logpos: 0, flags: 32, }, event: Some( RotateEvent { pos: 4, nextlogname: "mysql-bin.000132", }, ), } [src/main.rs:14] e = Event { header: EventHeader { timestamp: 1625022967, eventtype: FormatDescriptionEvent, serverid: 2, eventsize: 119, logpos: 123, flags: 0, }, event: Some( FormatDescriptionEvent { binlogversion: 4, serverversion: "5.7.29-log", createtimestamp: 0, commonheaderlen: 19, checksumalgorithm: CRC32, }, ), } [src/main.rs:14] e = Event { header: EventHeader { timestamp: 1625022967, eventtype: PreviousGtidsLogEvent, serverid: 2, eventsize: 71, logpos: 194, flags: 128, }, event: None, } [src/main.rs:14] e = Event { header: EventHeader { timestamp: 0, eventtype: HeartbeatLogEvent, serverid: 2, eventsize: 39, logpos: 4178350, flags: 0, }, event: None, } [src/main.rs:14] e = Event { header: EventHeader { timestamp: 1625047157, eventtype: GtidLogEvent, serverid: 2, eventsize: 65, logpos: 4178415, flags: 0, }, event: Some( GtidLogEvent { flags: 0, uuid: 0575a804-6403-11ea-8d3d-e454e8d4a4fe, coordinate: 1467870, lastcommitted: Some( 4662, ), sequencenumber: Some( 4663, ), }, ), } ...
```
Please refer to the [crate docs].
Not support Means Event Will Not Parse!But Event Header Will Can Tell It!
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.