Aziz wrote:

> 1. HTTP client library:
>     We should go with curl (the command-line utility) for starters.
>     Interfacing with libcurl can be done later, if useful.
>     Writing an HTTP client in Scheme is ideal, but we don't have it
>     now, and we don't have portable networking libraries,
>
We don't have portable libraries for OS processes either (apart from
spells and nausicaa, AFAIK). I think there is kind of a "bootstrap"
issue here: If I were to implement (parts of) the package manager, I'd
like to be able to use spells, which provides a portable filesystem
interface (beyond the meager one provided by R6RS), pathname
abstraction, OS process interface, and networking interface, all of
which would come in handy. However, I'm not sure if depending on spells
is OK for the package manager -- opinions?

>     so, let's not do that yet.  So, all we need is a wrapper library
>     that can talk to curl.
> 
>
As we already have a pure-scheme ZIP implementation (in industria), I've
started pulling up a simplistic pure-scheme HTTP client, adding to
industria:

https://code.launchpad.net/~rotty/scheme-libraries/industria
http://bazaar.launchpad.net/~rotty/scheme-libraries/industria/annotate/head%3A/rotty/net/http.sls
http://bazaar.launchpad.net/~rotty/scheme-libraries/industria/annotate/head%3A/programs/http-client.sps

The underlying TCP library is essentially a copy of spells' network
interface; so this does not add any non-SRFI dependencies.

Regards, Rotty
-- 
Andreas Rottmann -- <http://rotty.yi.org/>

Reply via email to