The Guppy Protocol

         ..                       .;,,;,';.
     .,xO0K0Ox;.               ..;;:::;,:,;,;
   .ck0KKKKKKK0kc.            .';::';,',','''.
  'd0KKKKKKKKKK0KOo.         ':cc;,''''''''''.
 ,xKKKKKKKKKKKKK00KOd,       .::,,'''''..''.'..........
,xKKKKKKKKKKKKK0kxddxd'       ......'..........................
l0KKKKKKKKKKK0d:;;;;,','....,;;,'..................................
l0KKKKKKKKKKOc;;;;;,,'..................................................
c0KKKKKKKKK0c;;;;;,,'...................................................''..
:OKKKKKKKKKx;;;;;,,,..................................................';;,;;'...
;kKKKKKKKKKk;,,,,,,,..................................................,:. .:;..
'xKKKKKKKKK0x;;,,,,,...................................................;c:c,'
.o0KKKKKKKKKKk:,,,,,'..........................................'..........
 'okO000000OOOxc:;,'..   ......................................''......
                                      ...........................
                                       .................
                                     lkdc:....
                                    cOkxo.
                                      '

Guppy is a simple protocol for quick transfer of small documents, inspired by Gemini, Spartan, Gopher and TFTP. In a nutshell, it's Gemini without TLS and some status codes, over UDP.

Protocol specification

Servers:

tootik

Sample server in C

Sample server in Python

Clients:

Kristall (since b2fac23)

gplaces (since 1.18.0)

Lagrange fork with guppy:// support

Sample client in Python

Simpler but slower sample client in Python

Sites:

guppy://guppy.000090000.xyz/

guppy://hd.206267.xyz/

guppy://gemini.dimakrasner.com/