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:
Base modules - speak standard RFC-compliant protocols
Mid-level modules - provide user-friendly abstractions of calendaring implementation details
High-level modules - provide calendaring services with minimal fuss for the end-user
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 <reefknot-devel@sourceforge.net>.
Next | ||
Base modules: Net::ICal and siblings |