温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Rust nom实现的mysql binlog解析工具怎么用

发布时间:2021-10-25 09:16:28 来源:亿速云 阅读:186 作者:柒染 栏目:大数据

Rust nom实现的mysql binlog解析工具怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

说实话, 用 nom 解析二进制文件比解析文本还要简单, 因为套路和工具都非常清楚,让项目进展缓慢的原因是 MySQL binlog 的文档有点坑, 某些说明和 mysqlbinglog 工具解析出来的不一致,我只能尝试找别的已实现的 MySQL binlog 项目参考, 具体到某个字段时这些项目都不是很完整。迫不得已,只能去查看 mysql-server 的源码, 凭借我 hello world 级别的 c++ 连蒙带猜地尝试把所有字段都解析出来。但某些字段过于复杂或不是很重要, 我就暂时把它们放在一边。

这里不得不吐槽下,为了实现这个项目我看过 c++,c,Java,Go,Python 这五个语言的类似实现, c++一堆符号,但还是能看懂意思;c因为表现力不够,代码有些繁琐;Java 是真啰嗦, 一个方法里只写一行,那一行还是掉别的函数~;Go 看都不想看;Python 表现能力不错,但可能是作者的问题,代码有些乱。
当然,我的代码也没好到哪里去:(,为了快就用了一个大enum表示所有事件,可能很快就要重构一次,但这是人的问题,论表现能力,Rust是静态语言里独一档的。
因为时间有限,所以测试用例还不是很完善,如果测试时遇到问题可以给我提Issue,最好能附上当时的binlog文件,帮助我丰富测试用例。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI