#row #binlog #file #mysql #python-3 #mysqlbinlog-rs

mysqlbinlog

mysqlbinlog-rs 用于解析 MySQL binlog 文件(行格式)

5 个版本

使用旧的 Rust 2015

0.1.5 2018年4月30日
0.1.4 2018年4月14日
0.1.3 2017年12月13日
0.1.1 2017年11月20日
0.1.0 2017年10月17日

#6 in #binlog

MIT 许可证

61KB
1.5K SLoC

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

mysqlbinlog-rs

一个用 Rust 编写的 MySQL binlog 文件(行格式)解析器,第一个稳定版本是 0.1.4

今年年初我使用 Python3 构建了一个解析器。现在改为使用 Rust,以提高效率,并为 Python3 提供了绑定以方便使用。

场景

  • 同步 MySQL 数据到 Redis、MongoDB、Kafka 等。
  • 在修复错误时找出数据库数据行变更历史。
  • 为开发者监控表的数据变化,例如,编写 PHP 控制器操作。
  • ...

为 Rust 开发者提供示例

  • 您可以在 examples 目录下查看文件。

为 Python 开发者提供示例

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 减少了读取 binlog 文件的时间。释放 Vec[] 中未使用内容的内存。修复了 python 绑定的 dylib 加载路径。
  • 2018-04-02 支持旋转事件和时间戳类型。

依赖项

~6MB
~111K SLoC