help-gnunet
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gnunet-scheme usage


From: Maxime Devos
Subject: Re: Gnunet-scheme usage
Date: Mon, 24 Jul 2023 22:12:40 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

(I don't check e-mails often, but they do arrive!)

Op 19-07-2023 om 21:01 schreef MSavoritias:

Hey,

I am interesting in using gnunet-scheme to write an application. I am
looking into writing an xmpp based application in particular. Its still
in early stages and I am thinking what network to use for it.

I stumbled upon guile-gnunet and gnunet-scheme. From these two
gnunet-scheme seems to be the actively developed one.
>
What I wanted to ask was:

1. Is gnunet-scheme intended to be used to write applications that use
gnunet, re:claimID, GNS and such? From the docs it seems so but wanted to
confirm.

Yes. It also is intended for writing new services (i.e. the equivalent of gnunet-service-SOMETHING), though support for that is very manual (see e.g. the spaghetti that is simulate-dht-service in tests/distributed-hash-table.scm).

That could perhaps be something you could work on?

Even if you are only focusing on the application side of things, being able to write services (with less spaghetti than simulate-dht-service) in Scheme can be very useful for automated testing of the application.

2. I guess it is not too far along since there is a lot of todo to be
done. So I am guessing even if thats the goal not yet?

Yes.
I am using guix already and I would be interested to contribute to
gnunet-scheme to push it forward if that is welcomed of course. The xmpp
app will be written in guile itself. I can help with docs specifically
since I am going to start to make something out of it. Which from what I
saw hasnt been done yet.
And in gnunet itself of course.

Most of the ‘public’ API is documented (though there are a few things missing in the manual) -- often, for me the hard part is designing the API (*). As this is roughly the same as writing documentation of the API, often I write the documentation before the implementation. (Although at times the documentation will turn out to need some changes from what I initially had in mind.)

More to the point, most important things are documented, and I actually like writing documentation, it's fiddling with the implementation (and implementing its dependencies) and tests that comes more difficult.

(Now I read the previous two paragraph again, I notice they contradict on what's more difficult -- I don't know how to resolve that.)

To start working with gnunet-scheme and to become familiar with it, I would instead propose what I wrote in ‘Writing new (gnu gnunet ... struct) modules, converted from C’ (chapter: Manipulation of network structures) (**) -- IMO, it's a bit tedious, but at the same time it is quite simple, and once you do it you will have a better feel on how the service you are porting actually works, which is very useful for doing the port.

(Or you could do something else of course, more than one road to Rome etc.)

(*) TBC I plan on eventually changing some parts -- e.g. in retrospect I don't think that ‘quajects’ has been useful for (gnu gnunet config db).

(**) I wrote this section while writing this mail, so you might need to pull.

Best regards,
Maxime Devos.

Attachment: OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]