Rust-ipfs vs go-ipfs vs js-ipfs

I’m thinking about creating a cross-platform app upon IPFS where performance is critical.
I would love to do it in rust, but there seem to be much less resources on rust ipfs than for go and the last release in the repo was 2 years ago.

How many people are currently working on rust IPFS compared to Go or JavaScript? How do you think are the chances that rust IPFS has a future? Is there any roadmap to a 1.0 release for it? Or should I better go with Go?

You can use rust-ipfs-api to communicate with a local go-ipfs node.

AFAIK rust-ipfs has not really been worked on recently. I would love to have at least a workable alternative to go-ipfs but not yet.

Thanks for your answer, even though it’s sad to hear…

Do you know what the status of the rust libp2p is? On GitHub it seems a bit more maintained…

Rust libp2p is widely used in ETH2 and is being worked on by multiple people.

1 Like

libp2p is totally independent of IPFS and used for lots of things so if there’s a rust lib for it that doesn’t mean much about rust libs for IPFS. Definitely the “GO Lang” IPFS is the flagship implementation. The JS implementation of IPFS is kind of crippled, and not worth consideration.

If you have some other language to call from (like I do from Java), you can go thru the HTTP API, and treat IPFS like a microservice.

1 Like


I hope you are well.
I have came across this rust-ipfs-api which you are one of the contributors.
I would like to have some comprehensive examples of this rust-ipfs-api using DHT(like dht_put/dht_get/dht_query/dht_findprovs/dht_findpeer) ?


I’ve never been able to create valid IPNS records and so never used routing put in my project.

The other commands should be straightforward to use. If you want to write example for rust ipfs api that would be great.


thank you for your response.

I just found out that all of the DHT(HTTP RPC API) are going to be deprecated:

For the Kubo CLI we have got the ipfs-dht That replace the old cmds.

I am assuming that the DHT replacement for HTTP RPC AP,I will be:
-api-v0-routing-get get
-api-v0-routing-put put
-api-v0-routing-provide provide
-api-v0-dht-query query

Even if you don’t know I would like your opinion, please.


The dht endpoints only interact with the DHT, this is probably not what you want.
It’s as easy as using the new routing endpoints instead Kubo RPC API | IPFS Docs (which are compatible with the IPNI indexer system)

1 Like