AdaFN - hyphanet/wiki GitHub Wiki
AdaFN is a high-level library that allows easy writing of client programs in the Ada language.
- High-level model of the protocol, no need to mess with string properties, robust type model.
- Thread-safe
- Supports:
- Synchronous calls.
- Asynchronous calls (with optional callbacks for transaction tracking).
- Example programs for key retrieval, file/folder insertion.
Clone from Github
$ adafn_getkey -k <key> [-v] [-f] [--max-size <n>] [--retries <n>] [--name <name>] [--global]
-v : verbose.
-f : follow redirects.
--max-size : limit of bytes to retrieve.
--retries : attemps in case of failure.
--name : use supplied name for the client connection.
--global : show in node global queue.
$ adafn_putfile --key <key> --name <name> --source <data> [-v] [-q] [--wait] [--uncompressed] [--source-kind <direct|directfromdisk|disk|redirect>]
--name : use supplied name for the client connection.
--source : data to be inserted for 'direct' mode, filename for 'disk' or 'directfromdisk' mode, key for 'redirect' mode.
-v : verbose.
-q : quiet.
--wait : wait for insertion completion without returning control to shell.
--uncompressed : instruct the node not to compress the data.
--source-kind : direct : insert data given in the command line ('--source' argument)
directfromdisk: use direct insertion (passed to the node using the connection) for data located in the local filesystem.
This mode allows to insert local files in a remote node.
disk : pass a filename to the node; it reads and inserts that file (which must reside in the same filesystem as the node).
redirect : a redirection is created, no actual data has to be supplied.
$ adafn_putdir --key <key> --dir <folder> [--default_file <filename>] [-v] [--uncompressed] [--local-queue] [--direct]
-v : verbose.
--default-file : default file returned by the node for incomplete requests (typically index.html for freesites).
--uncompressed : instruct the node not to compress the data.
--local-queue : avoid the use of the global queue (insertion will not be persistent).
--direct : use direct insertion (needed when the node is remote); disk insertion attempted otherwise (folder must be accesible by the node).
Attempts to retrieve [email protected] in blocking and non-blocking mode:
$ adafn_test