Skip to content

Conversation

@rafal-ch
Copy link
Contributor

@rafal-ch rafal-ch commented Nov 5, 2025

Description

This PR makes the hermes-ipfs crate compatible with the latest rust-ipfs changes.

Related Issue(s)

Closes input-output-hk/hermes#639

Description of Changes

rust-ipfs has been update to the latest commit available on main and some code in the library had to be updated.

Breaking Changes

There are a couple of breaking changes mainly due to the change of the underlying networking layer in the rust-ipfs, which now uses the connexa crate.

previously currently
Creating a subscription immediately returned a stream. Setting up a subscription and getting a stream back are two separate operations
SubscriptionStream type was available Now we need to use the connexa::prelude::GossipsubEvent which is a connexa private type exposed in the rust-ipfs API. This forces us to rely directly on connexa, which is a bad design.
Publishing a message produced a message ID This is no longer a case. If we need the ID on client side, we have to calculate it ourselves
Unsubscribe returned bool Now it's handled by a Result
PubSub events were used to track Subscribed/Unsubscribed events This is gone and these events are propagated in the common event stream along with the messages
We disabled the TLS explicitly TLS is disabled by default and we may enable it on the IpfsBuilder

Related Pull Requests

There is a PR in the works which will update Hermes: input-output-hk/hermes#643

Please confirm the following checks

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream module

@rafal-ch rafal-ch changed the title WIP: Bump and rewrite chore(rust): Bump rust-ipfs to latest main and adapt to the breaking changes Nov 7, 2025
@rafal-ch rafal-ch added this to Catalyst Nov 7, 2025
@rafal-ch rafal-ch moved this from New to 🏗 In progress in Catalyst Nov 7, 2025
@rafal-ch rafal-ch marked this pull request as ready for review November 7, 2025 10:44
@rafal-ch rafal-ch requested review from Mr-Leshiy, aido-mth, no30bit, saibatizoku and stevenj and removed request for Mr-Leshiy, saibatizoku and stevenj November 7, 2025 10:54
@github-actions
Copy link
Contributor

github-actions bot commented Nov 7, 2025

📚 Docs Preview

The docs for this PR can be previewed at the following URL:

https://docs.dev.projectcatalyst.io/libs/bump_rust_ipfs

@github-actions
Copy link
Contributor

github-actions bot commented Nov 7, 2025

Test Report | ${\color{lightgreen}Pass: 554/554}$ | ${\color{red}Fail: 0/554}$ |

@stevenj stevenj merged commit fd315d7 into main Nov 7, 2025
24 checks passed
@stevenj stevenj deleted the bump_rust_ipfs branch November 7, 2025 12:02
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Catalyst Nov 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

🛠️ [TASK]: Bump "rust-ipfs" in "catalyst-libs"

3 participants