Git Product home page Git Product logo

Comments (3)

Skycoder42 avatar Skycoder42 commented on September 15, 2024

First of all, if you have any suggestions or questions regarding the APIs you can always state you concerns in a friendly and informed manner. However, I will try to help you nonetheless.

The thing is: Depending on what kind of application you are developing, Dart is JavaScript, and this library aims to support all platforms, with a unified API. And since the JS-Library does provide to different variants (so that for simple use cases binary size can be kept low), this library has to as well to prevent users from accidentally breaking their applications.

If you only intend to work with the Dart-VM, then there is no real difference, as the binary is the same for both on native platforms. So you can simply replace "Sodium" with "SodiumSumo" in you code, and everything will work as is, no need to change anything with the binaries. The Sumo APIs are simply an extension of the normal APIs. I could have also named them "Sodium" and "SodiumMinimal" instead, the only reason I used this naming is to stay consistent with the original library. So there is no logical reason not to switch to sumo, as it is only the name that changes.

Regarding you concerns with the removal of APIs: Nothing has been removed. The functionality, that is not available in the non sumo variant of the JS library has simply been moved to the sumo variant. This ensures that code will not break on the web. So again, simply switch out the names (as suggested by the deprecations) and your good to go. I also made sure to publish this removal as a major update to not accidentally break existing applications. If you do not have the time to do the update right now, you can simply stay on the latest 2.* version.

Additionally, I have added additional sections to the READMEs (See https://github.com/Skycoder42/libsodium_dart_bindings/blob/main/packages/sodium/README.md#sodium-vs-sodiumsumo and https://github.com/Skycoder42/libsodium_dart_bindings/blob/main/packages/sodium_libs/README.md#usage) to prevent further confusion in the future.

If you have any further questions, need help with understanding the differences between the variants and platforms or need help to migrate your code, feel free to ask for help.

from libsodium_dart_bindings.

antfie avatar antfie commented on September 15, 2024

Thank you for enlightening me. I apologise for the non-friendly tone in my prior communication with you. I understand now where the Sumo variant has come from and the decision to carry that from the JS implementation makes sense for consistency and alignment with that library. Perhaps that team could have selected less confusing names. I would have gone with something like "libsodium-lite" for the JS variant or "minimal" in the name as you suggested, but that is not important.

Up until today I was at a loss as to what this Sumo business was all about - I didn't think to look from the JS libsodium angle as I do not use JS for my use case. I was wondering what the perceived departure from libsodium was. I couldn't determine the intent behind this Sumo change - I thought the project was moving away from libsodium to a technology I'd not heard of.

Thank you for updating the README with the "Sodium vs SodiumSumo" details. I think it will help others who may not have come across the JS libsodium library.

As you described, the process to switch to the Sumo version was straightforward. Thank you for taking the time out of your day to reply to my rant, and thank you for your continued contributions to this good project, without which, my project simply would not be possible. It would serve me well to remember this and to be mindful of the countless hours you spend on this open source project, the next time I encounter any issues.

from libsodium_dart_bindings.

Skycoder42 avatar Skycoder42 commented on September 15, 2024

Thank you for your kind reply. I am happy I was able to help to bring light to the situation. I totally agree with you that the naming of "sumo" is very confusing and I myself had quite the struggle when I was contemplating whether I should keep it or use a custom naming.

Finally, I am thankful for you bringing up the topic, as this lead to an improvement of the documentation, which others will profit from as well!

from libsodium_dart_bindings.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.