[Shotwell] Features for Shotwell 0.6

Ingo Lütkebohle iluetkeb at techfak.uni-bielefeld.de
Mon Apr 5 11:57:41 PDT 2010


Hi Adam,

Am 05.04.2010 16:44, schrieb Adam Dingle:
> - a plugin-based API where Shotwell dynamically loads plugins at startup (like 
> gedit or GIMP).
> 
> - a shared libary (libshotwell) which any application can use to interact with 
> the photo database.
> 
> - a D-BUS or REST-based API which allows external programs to interact with the 
> running Shotwell instance.

I would also add that, irrespective of the means of communication, there
are two different extension choices:

 * A "plug-in" system suggests that Shotwell is enhanced, i.e. through
new menu items or dialogs. It is not important for that whether the
plug-ins run in process or not.
 * In contrast, a "service" model looks basically at "other programs
accessing the same database in a coherent manner".

Historically, your first option has mostly been used to achieve choice 1
and this is likely the easiest way, due to the ease of adding API for
providing a GUI within another program.

> It's true that a disadvantage of plugins is that menus can become cluttered if 
> the user loads lots of plugins. Of the other approaches, I see some advantages 
> of a shared library over D-BUS/REST as a means of providing database access. In 
> particular, with a shared libary, external programs can interact with the 
> database even if Shotwell isn't running.

That is true, but could also be achieved through a daemon model.

> With a shared library, we also wouldn't 
> need to concern ourselves with serialization via D-BUS or REST: external 
> programs could interact with the database using the same calls which Shotwell 
> itself for database access.

Also true. Hpwever, at least with REST, if you're clever, you can
minimize that quite a bit. Think of HTTP's four basic operations (GET,
POST, PUT, DELETE) and one or two content types (images/metadata). After
that, adding URIs for different functions is much less work.

> I think it's safe to say that none of the above will happen for Shotwell 0.6 
> (tentatively planned for June) but we can consider all of the above for future 
> releases.

great to know, thanks :-)

cheers, Ingo



More information about the Shotwell mailing list