---------------------------------------------------------------------------
                  Ethos - Generic Plugin Engine for GLib
---------------------------------------------------------------------------

                                             Last Updated: Wed, 17 Jun 2009

I.   Introduction
II.  Features
III. Installation
IV.  Authors
V.   Contributing

---------------------------------------------------------------------------
I.   Introduction
---------------------------------------------------------------------------

Ethos is a library that provides a consistent plugin interface for application
extenders to target.  The more applications that use ethos for plugins, the
faster the community can expand to provide new features to new projects.

The core ethos library, libethos-1.0, only links against libgobject so that it
is safe to use in GUI-less applications.  The GTK+ library, libethos-ui-1.0,
provides widgets that can be embedded within your application to manage
plugins during run-time.

The API and file-format for ethos was based upon what I learned by embedding
gedit's plugin engine in other applications. Gedit has been so successful in
fostering plugins from its community that providing a similar experience
was only natural.

However, Ethos's implementation was written from scratch so that it could be:

 * LGPL 2.1 licensed
 * Remove dependency on Gtk+
 * Remove dependency on GConf

Because this is a new implementation, some features are currently not
implemented as they were not needed for the initial work ethos was used for.
Included in this is translations within plugin files.  This will probably
be supported in the future.

Nonetheless, I would like to thank each and every one of the Gedit developers
for creating such an amazing project which inspired ethos.

    Paolo Maggi <paolo@gnome.org>
    Paolo Borelli <pborelli@katamail.com>
    Steve Frécinaux <code@istique.net>
    Jesse van den Kieboom <jesse@icecrew.nl>
    Chema Celorio
    James Willcox <jwillcox@gnome.org>
    Federico Mena Quintero <federico@ximian.com>

----------------------------------------------------------------------------
II.  Features
----------------------------------------------------------------------------

Ethos is quickly gaining a strong set of useful features for application
developers.

    * Clean and simple API using GObject.
    * Plugin loaders for shared libraries (C/Vala), Python modules, or
      JavaScript.
    * Bindings for Python and Vala.
    * Bindings for JavaScript (using GObject Introspection).
    * Reusable GTK+ widgets for a consistent plugin management interface
      within the target application.
    * Documentation for nearly all public symbols.

----------------------------------------------------------------------------
III. Installation
----------------------------------------------------------------------------

Ethos can be installed in the typical free-software fashion.  From a release
tarball:

    ./configure --prefix=/usr --enable-gtk-doc
    make
    sudo make install

If you want python and vala support, make sure you have the following
packages installed.

    Debian/Ubuntu

        python-gtk2-dev python-gobject-dev valac libvala-dev

Alternatively, you may install the latest ethos releases from the DroneLabs
PPA for Ubuntu.

    deb http://ppa.launchpad.net/audidude/dronelabs/ubuntu jaunty main
    deb-src http://ppa.launchpad.net/audidude/dronelabs/ubuntu jaunty main

----------------------------------------------------------------------------
V.   Contributing
----------------------------------------------------------------------------

Ethos is currently maintained within a git repository.  Please clone the
repository to add features or fix bugs.  You can submit patches to Christian
at <chrisdronelabs.com> until a proper bug-tracking system is setup.

    git clone git://git.dronelabs.com/ethos

If you are interested in making your own Ubuntu packing for Ethos, you will
want to check out the "ppa" branch which contains everything you need.

