oxen-io / libsession-util

Session utilities library
GNU General Public License v3.0
15 stars 16 forks source link

Clarify the purpose of the library #40

Open f-person opened 1 year ago

f-person commented 1 year ago

It's unclear why the lib is called libsession-util instead of, for example, libsession. Will this be used for everything but client-specific features (e.g., business logic, UI, persistence, etc.) in Session clients, or is this library only a collection of utilities that are useful for building Session clients but not enough (i.e., you will still need to write custom code for handling the cryptography)?

While the answers to those questions would be satisfying for me, it'd be better to add a short description of what the library is/will be in the README. I do understand that it's still in active development, and this will probably be clarified in the future, but it could be helpful for potential future users of the lib (i.e., if this will eventually cover all aspects of the Session protocol, I can already integrate it into a Session Dart package I'm working, figure out the API, make it more idiomatic for Dart, instead of re-implementing everything from ground-up (my original idea)) :)

f-person commented 1 year ago

Quoting https://getsession.org/blog/session-release-roundup-17:

In a final attempt to slay the beast, we gathered up a group of the bravest devs in all of the land to forge a legendary weapon: a standardised library which could handle basic Session functionality for all platforms. They called it libsession. Once libsession is complete, all of the basic Session-y stuff (like, sending a message) will be exactly the same for every client. This means we will be able to avoid unexpected conflicts or needing to rewrite huge chunks of code to accommodate for one platform’s idiosyncrasies. Configuration messages are the first major instalment to libsession, and we will look to add other functions (like encryption/decryption logic and onion requests) in the future. We are determined to take down that cross-platform beast! 🗡️

I still wonder about the "util" part in the lib name, though :).

majestrate commented 1 year ago

Quoting https://getsession.org/blog/session-release-roundup-17:

In a final attempt to slay the beast, we gathered up a group of the bravest devs in all of the land to forge a legendary weapon: a standardised library which could handle basic Session functionality for all platforms. They called it libsession. Once libsession is complete, all of the basic Session-y stuff (like, sending a message) will be exactly the same for every client. This means we will be able to avoid unexpected conflicts or needing to rewrite huge chunks of code to accommodate for one platform’s idiosyncrasies. Configuration messages are the first major instalment to libsession, and we will look to add other functions (like encryption/decryption logic and onion requests) in the future. We are determined to take down that cross-platform beast! 🗡️

I still wonder about the "util" part in the lib name, though :).

this lib started as a set of utilities to slowly replace the multiple slightly different implementations in a piecewise manner.

jagerman commented 1 year ago

I still wonder about the "util" part in the lib name, though :).

At the moment, it's still utilities to help with Session. One day, if it morphs into something more, it'll likely get renamed.