Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make rust-ipfs more platform agnostic #6

Open
5 of 8 tasks
dariusc93 opened this issue Sep 25, 2022 · 2 comments
Open
5 of 8 tasks

Make rust-ipfs more platform agnostic #6

dariusc93 opened this issue Sep 25, 2022 · 2 comments
Labels
enhancement New feature or request p:normal Normal Priority

Comments

@dariusc93
Copy link
Owner

dariusc93 commented Sep 25, 2022

From where it stands, it seems that rust-ipfs is not exactly platform agnostic in a sense where it could run on every platform without an issue (mostly around wasm). rust-libp2p is platform agnostic, although testing may need to be done around wasm, wasi, etc., but have not seen many reports of issues on those platforms while rust-ipfs, being directly tied in with tokio, which does not support wasm completely, would likely have trouble running on such platforms.

Platforms that rust-ipfs can run on:

What should be done in the future:

  • Gate any IO operations behind features not to conflict with platforms that cannot perform direct IO (eg WASM)
  • Test official protocols against WASM in rust-ipfs to determine what does and doesnt work
  • Test interop with js-ipfs and go-ipfs

Notes:

  1. Under default configuration, DNS would not operate on android due to its attempt to locate /etc/resolve.conf. As a result, we have to check for the target os and use the following lines to use the default dns (which I believe would be google dns)
  2. We can use idb, or gluesql for the data and block store when targetting wasm to make it easier on us.
  3. We may want to utilize send_wrapper when handling any wasm32 libraries as many of them that interact with bindings will not support Send or Sync.
  4. We will prioritize using tokio where possible.
@dariusc93 dariusc93 added the enhancement New feature or request label Sep 25, 2022
@dariusc93 dariusc93 added the p:low Low Priority label Nov 19, 2022
@tennox
Copy link

tennox commented Jun 13, 2023

Tip: Could be an option to use something like prokio to be able to run on tokio-compatible systems and on wasm 👍

@dariusc93
Copy link
Owner Author

Tip: Could be an option to use something like prokio to be able to run on tokio-compatible systems and on wasm 👍

Thanks. I'll be taking a look at that soon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request p:normal Normal Priority
Projects
None yet
Development

No branches or pull requests

2 participants