jepri has asked for the wisdom of the Perl Monks concerning the following question:

I'm in the middle of implementing a webDAV server as a way to present data to users in a filesystem (via webfolders or davfs). It's not much fun, and I'd rather skip to the fun bit at the end. Could anyone recommend a webdav server or module? In fact it doesn't have to be webdav... just any perl code that presents filesytems that can be mounted.

I am currently working off WebRFM code, which is making me realise how much I appreciate functional programming. Expect a rant/tutorial sometime soon.

____________________
Jeremy
I didn't believe in evil until I dated it.

Replies are listed 'Best First'.
Re: WebDAV server
by rjray (Chaplain) on Feb 14, 2002 at 08:34 UTC

    I am not aware of a Perl module of any sort that does this.

    However, current versions of the Apache webserver supply an extension module called mod_dav that I understand to be a WebDAV implementation. In addition to this, you may want to look up libneon on Freshmeat or perhaps using a search engine. This is a C library that implements WebDAV operations. There are probably some servers out there that use it. I know that Subversion uses WebDAV by means of libneon.

    --rjray

      FWIW, libneon is a DAV client library (used in the subversion clients), not a server library. The subversion server uses the Apache mod_dav stuff.

      I think it would be a really good thing to get a perl interface to mod_dav. I know several people interested in perl-based DAV servers.

        mod_dav is the defacto means of implementing WebDAV support. Subversion does use libneon to provide WebDAV *services*. In Apache 2.0 mod_dav will be a standard module and the current mod_dav implementation will probably become stale. There is also HTTP::DAV.

        My two issues with WebDAV is the slow implemantation of DeltaV (the V portion {Web Distributed Authoring and Versioning}) support/drafting. Along with mod_dav's insistence that the content it writes to be an exclusive repository, leading to complications with multi-user websites and shell editing.

        --
        perl -pe "s/\b;([st])/'\1/mg"

      I confess I haven't looked too closely at mod_dav (although I have used it in a production environment, without perl). What I want is to be able to serve data out of, say, a database via perl - not something mod_dav can do. I can do this anyway, but I want to have it appearing in a file for the purposes of better integration with other programs. Since perl can't do kernel modules this is the closest I can get.

      This is OK, I think it means I've finally found something I can post to CPAN (when I'm done)

      And as Matts mentions, libneon is the client library. I wouldn't use it for a couple of reasons anyway, mainly because it is a C library, and WebDAV is a HTTP protocol - something perl is more than qualified to deal with natively.

      ____________________
      Jeremy
      I didn't believe in evil until I dated it.