Reefknot Developers' Roadmap

Shane Landrum


Introduction: the toolkit approach

This guide is intended to describe the current and future direction of the Reefknot shared calendaring project and the Perl libraries we're working on.

Ultimately, we'd like to provide a way for end-users to write something like this to start a fully-functional calendar server:

  use Reefknot;

  # this is just a sample, and isn't reflective of any exact API
  
  # set up information about existing storage and user databases
  $store = new Reefknot::Storage::DBI (server => "calserver.myorg.com");
  $userdb = new Reefknot::Users::LDAP (server => "ldap.myorg.com");
  
  # set up Reefknot to run on top of the storage and user lists
  $s = new Reefknot::Server(storage => $store,
                            users => $userdb,
                            logdir => '/var/log/reefknot/');
  
  # start the event loop
  $s->go();

Clients could also be built similarly with Reefknot modules:


  # within a CGI program or Apache handler:
  
  use Reefknot::Client;
  use Reefknot::Storage::Wombat;
  use Reefknot::Display::HTML;

  # again, just a sample, not reflective of any real API

  # set up information about the client
  $store = new Reefknot::Storage::Wombat; # use my Evolution calendar store
  $display = new Reefknot::Display::HTML; # but do client interface with HTML
  
  $c = new Reefknot::Client(storage => $store,
                            display => $display);

  $c->handler($cgi);    # or something like this

In order to make this happen, we'll need a variety of modules. They fall into several classes:

This document details what's done now, what's not done yet, and major areas that are open for developers to tackle. If you're interested in working on these, please contact .