Get the latest tech news
Sula: A Gemini protocol server written in Scryer Prolog
/'su.la/ for the suffix of capsule in Spanish, Cápsula. Git A Gemini protocol server written in Scryer Prolog. Requirements sula depends on a patched Scryer Prolog which can be found here (branch js/fixes). The required patches are: A native '$copy_stream'/2 builtin used for streaming binary file bodies to TLS clients without materialising the contents on the Prolog heap. A fix to library(pio)’s buffer_prepare_for_n/5 so that lazy reads from process pipes (and other streams whose at_end_of_stream/1 never reports true) terminate on EOF instead of spinning. A non-blocking poll loop in socket_server_accept/4 that checks Scryer’s INTERRUPT flag, so SIGINT becomes a catchable '$interrupt_thrown' exception instead of being trapped behind a blocking syscall. A port to rustls. A modification of tls_server_negotiate to include the optional client certificate. Build and install the patched Scryer:
None
Or read this on Hacker News