#table-parser #reader

mysqlbinlog

mysqlbinlog-rs is for parsing MySQL binlog file (row format)

5 releases

Uses old Rust 2015

0.1.5 Apr 30, 2018
0.1.4 Apr 14, 2018
0.1.3 Dec 13, 2017
0.1.1 Nov 20, 2017
0.1.0 Oct 17, 2017

27 downloads per month

MIT license

61KB
1.5K SLoC

Rust 1K SLoC // 0.0% comments Python 268 SLoC // 0.1% comments

mysqlbinlog-rs

A MySQL binlog file (row format) parser in Rust The first stable version is 0.1.4

I built a parser in Python3 in the early of this year. Now in Rust instead, for high efficiency, and provided a Python3 binding for conveniency.

Scenarios

  • Sync MySQL data into Redis, MongoDB, Kafka, e.g.
  • Figure out the DB data row change history when fixing bugs
  • Watch table's data changing for developer, for example, coding a PHP controller-action.
  • ...

Examples for Rust developers

  • You can see files in the dir examples

Examples for Python developers

Usage:
  python3 main.py --ignore=th%.%,an%.% -b /usr/local/var/mysql/mysql_binlog.000001

# Give argument --ignore with a db name, table name pattern to ignore the row events in that tables.
  • 2017-12-13 Reduce times of reading binlog file. Release the content memory in Vec[] for unused content. Fix python binding's dylib loading path.
  • 2018-04-02 Support Rotate event and timestamp type.

Dependencies

~6MB
~111K SLoC