Skip to content
This repository was archived by the owner on Mar 29, 2025. It is now read-only.

Adding support for RDB version <= 12 and refactoring #19

Merged
merged 35 commits into from
Mar 29, 2025

Conversation

bimtauer
Copy link
Contributor

@bimtauer bimtauer commented Feb 10, 2025

Stumbled over this when wanting to create stats of an RDB dump. Python library redis-rbd-tools is outdated and doesn't support newer redis versions and this one was long archived but promising. So I went ahead and added support for new encoding types, refactored the code and added python bindings with Maturin.

Changelog:

  • New RDB version and Datatypes
  • Rust based integration tests
  • Fixtures for protocol and plain output
  • Redis integration test covering 6.2 - 7.4
  • Option to output to file
  • Error handling with thiserror
  • Support for new encoding types:
    • listpack
    • quicklist
    • sorted set v2
  • Python bindings with Maturin

Contributing this here as part of a bid to become maintainer of this project. Thanks again for the nice chat leading up to this!

bimtauer and others added 5 commits January 14, 2025 22:33
* Try fixing file system permissions for testcontainers in gha

* Revert "Try fixing file system permissions for testcontainers in gha"

This reverts commit 1dd2a36.

* Debug file system permissions in gha

* Change file permissions via container

* MOAR debugging. I hate github actions.

* Chown

* ls -l inside container

* Even more debugging and waiting for redis just in case

* Sanity test privileged mode

* Wait more

* Rm privileged

* Try syncing file before proceeding

* try userns mapping

* Try with command

* With more complex cmd

* debug

* Try it all again

* Reproduce

* More context

* See if it passes

* fmt

* Issue with toolchains

* Stat

* Fail

* Try modifying user again

* More debug

* Extended debugging

* Better output

* Escape the curse of mounts
@@ -0,0 +1 @@
* @bimtauer
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added this in my fork as a precaution against hijacking since I did test-publish the python package rdb-py from there. I used a trusted publisher configured for my fork for this. Publishing the python bindings wont work from here. Let me know if you also want to publish 0.3 of the python lib from here first.
Sorry for not mentioning this ealier.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All good! Once I publish the latest version on crates.io, I will hand it over to you and your repo becomes the main one. So we can keep it as that and you can do the rdb-py release afterwards.

uses: PyO3/maturin-action@v1
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will fail in this repository

@@ -0,0 +1 @@
* @bimtauer
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All good! Once I publish the latest version on crates.io, I will hand it over to you and your repo becomes the main one. So we can keep it as that and you can do the rdb-py release afterwards.

@badboy badboy merged commit 2a87c62 into badboy:master Mar 29, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants