[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.
OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key
OpenPGP_signature
Description: OpenPGP digital signature