aboutsummaryrefslogtreecommitdiff

GN4 Guile Webservice

This directory provides a Guile web service incl. the new REST API. It is used in conjunction with the Python web services and (very much) WIP.

Run

  1. Navigate to the Web Directory and Start the Server

Running the web server is documented in guix script.

curl http://127.0.0.1:8091/version
"4.0.0"

Documentation

Start with this file and then the documentation in doc.

Development

The current repository lives at

git clone tux02.genenetwork.org:/home/git/public/gn-guile

GNU Guile allows you to develop against a live running web server using emacs-geiser. To try this fire up the web server from the web directory as

cd web
unset GUIX_PROFILE
. .guix-shell -- guile -L .. --fresh-auto-compile --listen=1970 -e main ./webserver.scm 8091

Note the leading dot. The .guix-shell is defined in gn-guile/web and loads required packages using GNU Guix. If you are on Debian you may need to unset GUIX_PROFILE first.

Welcome to the world of interactive Lisp programming

Next fire up emacs with emacs-geiser-guile and connect to the running web server with M-x geiser-connect and the port 1970. Now you can not only inspect procedures, but also update any prodedure on the live server using C-M-x on code, call and get updated output from the webserver! No need to save/reload files and all that.

Note that you may have to try different versions of guile+emacs to succeed.

Tools

Some tooling and scripts that run independently are stored in ./scripts.

Development

git remote add gn git.genenetwork.org:/home/git/public/gn-guile

Topics

LICENSE

This software is published by the GeneNetwork team under the AGPL3. See LICENSE.