[Box Backup] Box and non-C++ clients

Ben Summers boxbackup@fluffy.co.uk
Wed, 15 Feb 2006 22:11:18 +0000


On 15 Feb 2006, at 21:20, Stefan Norlin wrote:

>> The only downside - and its a biggy - is that it works by calling
>> bbackup executables directly rather than libraries. Its written in  
>> PHP.
>
> I have also tried using cgi-script:ing to call the various  
> executables...
> and then I started looking at implementing the protocol in Java... :)
>
> Nevertheless it would be cool to have a look at your interface.


Some random thoughts...

* It sounds like it might be better to have a separate server for  
provisioning, with a different (but similar) protocol to bbstored.  
Otherwise you start confusing functionality between the file server  
and the provisioning system. It also means you don't have to run the  
provisioning server if you don't want to.

* Maybe it could use an "easier" protocol. Like say something over  
HTTP (I have HTTP handling libraries for the Box framework).

* On the "dream API" remember that 1) filenames are encrypted, so the  
server can't do searching on wildcards and 2) you can already request  
a list of the old versions of a file. For efficiency, it might be  
nice to stream an entire directory tree, instead of requesting it one  
bit at a time.

* I have a web app framework which works within the Box libraries,  
which I am considering open sourcing. Perl scripts write C++, which  
means that you can very easily use the existing code for talking to  
the servers. It's a bit weird, but very productive, and you end up  
with a single binary standalone web server. All the usual web app  
stuff, like templating, i18n, form handling inc validation, database  
and data binding, you know the stuff. Except that the business logic  
is written in C++.

* Some of the other bits which have been developed sound very  
interesting. I would welcome them into the project if appropriate,  
but maybe it'd be simplest for everyone if they were "separate" to  
some degree? It all depends, especially on which license was chosen.  
Of course, all the bits will get prominent links from the home page  
whatever happens.

* Check out SWIG for wrapping C++ libraries for Perl, PHP, Python,  
Tcl, Ruby and PHP.

* I had no idea there was so much interest or so much going on!

Thanks.

Ben