Greetings, ArX has depended on gnome-vfs for a long time. Unfortunately, gnome-vfs is a large dependency and is not ported to Windows except through cygwin. What has impeded a replacement is that it must cover sftp, http, https + webdav, ftp, and ftps, and it must already build on a variety of Unix platforms, Mac, and Windows (mingw is ok). I think I have figured out a replacement now. Each of them come with caveats.
sftp: libssh2 ------------- http://www.libssh2.org/ This is not to be confused with the libssh library by Aris Adamantiadis. libssh2 already builds on Windows. The only problem is that it uses OpenSSL, which has a license that is incompatible with the GPL. However, it only uses the ciphers and hashes, so it should be straightforward to make it use Botan. Using Botan would also mean we can take out the existing sha256 code. http, https+webdav: neon ------------------------ http://www.webdav.org/neon/ This is basically the only library around besides gnome-vfs and corresponding KDE libraries that understands webdav. For https, it can use either OpenSSL or gnutls. However, gnutls does not seem to work with mingw. So https would not be supported under Windows. ftp(s): ftplibpp ---------------- http://kasablanca.berlios.de/ftplibpp/ This is a nice little library that only implements ftp. It also uses OpenSSL for crypto, but it comes real close to compiling gnutls' compatibility layer. I also considered libcurl, but that seemed like a large dependency for an infrequently used protocol. ftplibpp can be included directly in the source. If ftplibpp ends up causing problems, it should be simple to switch it out for libcurl. So the end result would be that the only way to do secure transactions on Windows would be with ssh. But since we can bundle almost everything, it is pretty easy to provide simple executables for all platforms. It would still require a few extra helper commands (diff, patch, and tar), but I think those can be replaced with libxdiff and zlib. Also, it would probably be good to rework the way ArX uses the networking code. Right now, there is no explicit reuse of connections. I would want to rework the code to open a connection, perform operations, and then close the connection. That should reduce latency. Cheers, Walter _______________________________________________ Arx-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/arx-users
