RFC Refactoring the safe_app and simplifying its API

Important RFC from @bochaco about the safe_app API. Much more simple use for the developers.


Yes, looks good to me. I don’t know the safe_app to comment in detail but have read it through and confidence in Gabriel. :+1: @bochaco


Much of that looks good and I like the graphic as it makes the architecture more obvious.

Discussion: https://forum.safedev.org/t/simplification-of-the-mutabledata-api/480


Sorry, you don’t have access to that topic!


@bochaco here then…

My query then is still wondering what option there is equivalent to the existing API simple GET request for urls. Such option for commandline GET is obviously at the root of any directory scan.

There’s this comment:

This could be seen as a negative aspect if the user is not conscious enough flooding the network with unnecessary requests that can be alternatively sent in bulks.

Which is not directly talking of GETs but I wonder if there is a problem of those being too simple and a risk then of spam requests that is trying to be offset?
Happy to see whatever is necessary but it’s unclear if the GET API is seen as a problem or not… and if not what option remains through FFI or preferably Rust… expecting the Rust route is quicker for jumping less hurdles.

1 Like

yeah what’s up with that?

is it a private corporate chat that the community can’t see?

thought the dev forum was open. If it’s only for maidsafe corporate talks only, might as well close it off anyway to community if it’s for that purpose instead

it’s always real super slow / quiet on there compared to here anyway

It’s not unreasonable they have drafts and subforums… to be expected they would find them useful.

I expect it’s just been posted here slightly ahead of time.

That said /t/ is where we are now…


Rust has FFI build in. You can run any language with Rust. So it’s not like they had to make multiple versions. They build Rust Core, then let devs make their decision if they want to build app with their language of choice.

1 Like

Disclaimer: after :beer: Leffe :smiley:

I’m just looking at the picture there and seeing

Rust App -> use safe_app

instead of

[[node.js App -> safe_app_nodejs]|[C/C++ App]] -> safe_app FFI -> use safe_app

and perhaps naively expecting that is quicker… but perhaps the FFI internal to Rust you’re suggesting is no difference. Still, I’m liking what I do understand and Rust is closer than pick a random other language.

Anyhow… query remains re what option there is for GET…

1 Like

@davidpbrown, I’m not sure I understand what you mean, if you are talking about fetching the content of page from a safe url, then the following function would fetch a safe site from the network (without the need to authorise the app which is sending such request):

You can see some examples of its usage in our tests:

An app could interface with the SAFEnet thru the safe_app library, either using the language bindings provided (like safe_app_nodejs package), or bypassing the binding and using directly the FFI exposed by the safe_app library. This proposal also mentions the possibility of a Rust app to just import the safe_app crate rather than interfacing thru the FFI.

Please note this proposal itself is a WIP at the moment and it hasn’t been approved yet, this is an early stage of the process.


Excellent - many thanks!


FYI, I just updated the ‘Discussion’ link in the doc. to reference the PR discussion section.

1 Like