-
-
Notifications
You must be signed in to change notification settings - Fork 32
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
Why NodeJS & Browser JS, Typescript, Golang and Python over Rust? #19
Comments
I totally agree with you. The plan to create GoLang & Python implementations (it is already available in different flavors of JS) was decided when the project started, and at that point in time, I didn't have much idea about the benefits of Rust. But as I have learned it's better to have a Rust implementation than GoLang or Python. BTW, there are folks in the OrbitDB community (@aphelionz) who are already working on the Rust implementation. So, I think we should change the README to reflect this. Any thoughts @vaultec81? |
I think we should definitely support Rust. I am a little wary of supporting python. Should we reconsider and only support JS, Golang and Rust? I think Golang has value as its used primarily in a lot of ipfs related areas. |
An argument for JS in particular, one that we use for OrbitDB, is that JS is a very ubiquitous and accessible language, which means many more people can contribute meaningfully to the discussion and code base. Rust is more performant, uses fewer resources, etc etc - absolutely 100% yes, but the JS community is simply much much bigger at this point. It's the same reason why we don't use Typescript, Lerna, Yarn, etc. That all being said, @vasa-develop is right and you can check out http://github.com/rs-ipfs when you get a chance to see the latest Rust IPFS work :) |
Thanks for the insights @aphelionz! @vaultec81 You are right, I have used Golang for generating Android & iOS bindings. So, I think Golang & Rust can be 2 implementations that we can agree upon. Should I add Golang & Rust to the README? BTW, I added some details on the current state of go-orbit-db by Berty: #20 |
It seems to me like a plan that implements AvionDb in NodeJS & Browser JS, Typescript, Golang and Python requires writing code 3-4 times and at the end of the day the AvionDb still won't be able to be easily used on Native Android/Native iOS/Xamarin/Flutter. If the code was written in Rust it could be used in all-contexts (maybe a bit additional work on the web to integrate with IndexedDB)
At the same time both performance and security are likely worse then if the project would be in Rust. Both are important for this project.
The text was updated successfully, but these errors were encountered: