What language do you want most to use to implement IPFS?

Now, we have Golang, Javascript, Rust IPFS implements. I’m not one of the IPFS group, but, I’m curious what language do you, the community, want most to use to implement IPFS?
For me, I want Java-IPFS and Swift-IPFS. Because they are the native language of mobile devices and if we have those implements, we can build native IPFS apps on the phone and bring the IPFS to everyone.

Which language you prefer most to implement IPFS?
  • C
  • Java
  • Python
  • C++
  • C#
  • PHP
  • Ruby
  • Swift
  • Julia
  • Dart
  • Lisp
  • Kotlin
  • Scala
  • Haskell
  • Elixir

0 voters

Btw, Happy lunar new year!

2 Likes

You gave excellent reasons for Java and Swift. Here is my reasoning for C: most other languages have some way of interfacing with C code, so if you have a C implantation of IPFS, you get the rest of the languages for very little additional work.

3 Likes

I’m rooting for Rust. The implementation isn’t doing everything the go version is doing yet, but I’m glad to see that it’s getting there. And I think it should be better than C for IPFS-as-a-library purposes, because of safety. I was going to try to use it from C++ at some point just to check whether it’s really possible. If that works, then I think the Rust implementation could be the main one: other languages can just link to the library, rather than spending time on rewriting. Even on mobile platforms.

4 Likes

No love for Kotlin? I would have thought google’s impending shift away from java would have gotten more traction by now xD

There is a rust version being built.

Announcement

Code

I agree with the sentiment that Rust should be the focus, and eventual default implementation, especially one that can be embedded into apps, and compiled with cargo-mobile, so device-native aarch64 implementations (and relevant device syscall glue) for libp2p and sled (or other native API k/v storage backend) would obviate the need for splitting development efforts just to support mobile.

I voted Java! Because of Clojure, Scala and Kotlin

I voted for Python because that’s what I’m learning.

Ada implementation…

If it’s safe enough for Space, it should be safe enough for the permanent web:

https://www.adacore.com/industries/space

Dart looks appealing as it would allow to build cross-platform IPFS apps in Flutter. Please let me know if there is a Dart implementation is being developed somewhere. I couldn’t find anything solid like implementing IPFS stack in Dart.

Upd.
ipfs_client_flutter | Dart Package is a simple http client that is even incomplete.
GitHub - hackyguru/IPFS-Flutter: A Flutter implementation of IPFS using HTTP API and Infura is another http client around existing IPFS daemon.

Just to be clear, because it’s somewhat frustrating when first getting to know IPFS, there is one fully supported language, Go, and another mostly supported language, Javascript. (I don’t believe that the Javascript version is feature for feature on par with the Go implementation.). It’s very confusing at first to figure out what the language support is, between running a full node and just running and API client.

There are bits and pieces, here and there, of various attempts but nothing complete. The rust version is probably the furthest along and it sill has a way to go.