A partial Scheme port of GNUnet client libraries. Will be renamed to gnunet-guile once it has sufficient functionality. Git repo moved to https://git.gnunet.org/gnunet-scheme.git/. Not sure if Mantis will be used.

Maxime Devos 0ef8b86564 dht/client: Register new get operations for processing. 2 years ago
.reuse a55f5139df New module: (gnu gnunet directory) 3 years ago
LICENSES 1b1994e769 Define libextractor metatypes 3 years ago
build-aux 064d99d42a Write code for message handlers 3 years ago
doc c0c94fbe0b examples: Consider extending the web interface with other services. 2 years ago
examples 585e68f4e4 examples/web: Connect to the DHT service. 2 years ago
gnu 0ef8b86564 dht/client: Register new get operations for processing. 2 years ago
tests 4f5c2c27de bv-slice: Support signed integers. 2 years ago
.gitattributes c4741f65c9 git: Mark .scm as Scheme files for diffing purposes. 2 years ago
.gitignore 75ad4e17ca git: Ignore some files created by Emacs. 2 years ago
.guix-authorizations 431f336edd guix: Set up .guix-authorizations. 2 years ago
.mailmap 63a03a46d1 Change e-mail address 3 years ago
0001-Fix-non-revealed-port-is-closed-ports.test.patch 0a85701b0a guix: Patch 'guile' to fix some bugs. 2 years ago
0001-ice-9-read-Parse-properly.patch 0a85701b0a guix: Patch 'guile' to fix some bugs. 2 years ago
Makefile.am c0c94fbe0b examples: Consider extending the web interface with other services. 2 years ago
README.org 2b11ecaa0b README.org: Really point to doc/scheme-gnunet.tm. 2 years ago
ROADMAP.org c0c94fbe0b examples: Consider extending the web interface with other services. 2 years ago
configure.ac 7bad3451f8 build: add autotools scripts 3 years ago
guix.scm 1d607feefd guix: Import missing module. 2 years ago

README.org

See doc/scheme-gnunet.tm for documentation. Or run "make doc/scheme-gnunet.pdf" to read the PDF documentation. The documentation in this file is in the progress of being moved to doc/scheme-gnunet.tm. Scheme-GNUnet is under the AGPL and FDL (code and documentation), see doc/scheme-gnunet.tm and individual source files for details.

The following is a left-over, see doc/scheme-gnunet.tm for documentation instead!

scheme-GNUnet: a partial Scheme port of GNUnet

things that work

TODO: ask upstream of use of name is acceptable TODO: more bindings, less duplication TODO: document directory & meta data format TODO: test suite for download & publish. TODO (elsewhere): GNUnet service definitions for Guix in container

DONE publishing store items

(Script: gnu/gnunet/scripts/publish-store.scm) (Described in ROADMAP.org)

DONE downloading store items

We cheat by calling the gnunet-publish binary. Use this to publish a directory from the store! (Script: gnu/gnunet/scripts/download-store.scm) (Described in ROADMAP.org)

Purposes

Modules

Tags

    The inverse of the former, to be implemented. When implemented, contact guix-devel on how to proceed. Either creates a directory structure or a nar.
  • for use by Guix and disarchive
  • bit-for-bit reproducibility in directory creation
  • a nice Scheme interface to GNUnet!
  • gnu/gnunet/directory.scm: directory construction
  • gnu/gnunet/concurrency/update.scm: a box with a value,
  • that can be updated, resulting in a new box. Updates can be waited upon.
  • gnu/gnunet/utils/platform-enum.scm: Platform-specific
  • C-style enum values.
  • gnu/gnunet/concurrency/repeated-condition: different type
  • of conditions (TODO describe better)
  • spec: it is unknown if this will turn out to be a practical abstraction.
  • why: it remains to be seen if these modules will have any use
  • test: these modules have (passing) tests
  • good: these modules, abstractions ... are practical, and will not be scrapped
  • (tweaks might still be possible, and the modules could still have missing functionality)
  • wart: these modules have some ‘unniceties’ (warts). This does not prevent
  • the ‘good’ tag.

More refined IP, TCP, UDP, ... test good why

  • gnu/gnunet/icmp/struct.scm: ICMP packet types & codes
  • (incomplete, to be used for error messages)
  • gnu/gnunet/util/cmsg.scm: Constructing & analysing
  • ancillary messages (likewise)

Relative time manipulation test good

    TODO: IP_PKTINFO for interface address, scope ... TODO: message queue based upon this TODO: nice abstraction for network errors
  • gnu/gnunet/time.scm: Time units and exponential back-off.