=pod

[html]<!-- This code is ugly as hell. -->
<div style="width: 600px; height: 227px; background-image: url(/img/globster.png); margin-bottom: -30px">
<b style="font-size: 14px; position: relative; left: 150px; top: 10px">The Globster What?</b>
<p style="position: relative; left: 150px; top: 20px; width: 420px; text-align: right">
Globster is an efficient file sharing client for the Direct Connect<br />
network. It runs as a background daemon and provides<br />
a convenient and high-level D-Bus API, making<br />
it easy to write scripts, bots and user<br />
interfaces for Direct Connect.
</p></div>É

=head1 Adopt your own Globster

=head2 Download

There are no tarballs at the moment. You'll have to get it from the git repo:

  git clone --recursive git://g.blicky.net/globster.git
  cd globster
  autoreconf -i
  ./configure
  make
  sudo make install

When doing a C<git pull> to update your version later on, make sure to follow
up with a C<git submodule update> to get the right dependencies, too.

The git repo is available for
L<online browsing|http://g.blicky.net/globster.git/> and can also be
L<found on github|https://github.com/yorhel/globster>.

=head2 Requirements

Globster can be compiled with a (moderately recent) GCC or clang. You'll need
the following libraries: L<libdbus|http://dbus.freedesktop.org/> and
L<GnuTLS|http://gnutls.org>. If your GnuTLS is too old (<= 2.12), you also need
libgcrypt. The globsterctl script requires Perl and the Net::DBus module.

On Debian and Ubuntu, that boils down to the following:

  apt-get install git make gcc libc-dev automake autoconf\
    pkg-config libdbus-1-dev libgnutls-dev libnet-dbus-perl

And for Arch Linux:

  pacman -S base-devel git perl-net-dbus

I've only tested things on Linux (glibc and L<musl|http://www.musl-libc.org>),
but I intent to support more kinda-sane POSIX systems in the future as well.
Globster will no doubt require some more libraries as more basic features are
being implemented. And, yes, I<of course> we will get static binaries!

=head2 Status

Remember when I called Globster a "file sharing" client? I lied. It doesn't
share or download files yet, since it's currently in an early alpha stage. So
what I<does> it do?

=over

=item * Connect to ADC and NMDC hubs

=item * User list management

=item * Chatting and private messaging

=back

Those features already make it perfectly suitable for writing chat-only bots
and interfaces.

=head2 Usage

Globster isn't particularly hard to use, but usage documentation is currently a
bit lacking. I have every intention to fix that, but for now, you're encouraged
to join the development hub and bug me for help: C<adc://dc.blicky.net:2780/>.
I did already write some
L<API documentation|http://dev.yorhel.nl/globster/api>.

There are at this point not many scripts or interfaces available for Globster:

=over

=item * L<globsterctl|http://dev.yorhel.nl/globster/ctl> - A control script for the daemon, included in the git repo.

=item * L<globster-feedspam.pl|http://p.blicky.net/wpaaf> - An RSS / Atom notification script.

=item * L<globster-mhc.pl|http://p.blicky.net/8y8mv> - A hub chat link script. More useful as an example than anything else.

=back

There's more to come. I'd love to have at least a convenient console client (a
weechat or irssi plugin? An ncdc fork?) and perhaps a web-based interface. But
other stuff is welcome, too. Who's going to write all that, you ask? Erm...
well... You, perhaps? :-)

=head2 Final notes

As you've come to expect from me I<(right?)>, Globster is entirely written in C
and available under a liberal MIT license.

Globster incorporates code from
L<libev|http://software.schmorp.de/pkg/libev.html>,
L<freetiger|http://klondike.es/freetiger/>,
L<klib|https://github.com/attractivechaos/klib> and
L<ylib|https://github.com/yorhel/ylib>.
Additionally, L<makeheaders|http://www.hwaci.com/sw/mkhdr/> is used to prevent
obsessing over header file management, and
L<autoconf-lean|https://bitbucket.org/GregorR/autoconf-lean> keeps the
configure script fast.

