Deep dive into TWiki as the file-based Perl counterpoint to XWiki: flat-file + RCS store (data/<Web>/<Topic>.txt), Webs/Topics, TWiki Forms storing fields as %META% in the topic text, TWikiML/variables, TWiki::Func API; the plugin handler callback surface (initPlugin, commonTagsHandler, before/afterSaveHandler, afterRenameHandler, REST handlers) and package types (Plugin/Skin/AddOn/Contrib); per-topic ALLOW/DENY access control (origin of yawex's model); Foswiki fork. Catalog (now 41 UCs): - UC-40 attach a file-backed engine's on-disk store directly (dual-path attach) - UC-41 import an engine's native file history (RCS .txt,v) into the journal - enrich UC-06 (TWiki per-topic ACL lineage), UC-34 (file-embedded %META%), UC-36 (RCS-import vs DB-supplement), UC-38 (TWiki handlers as adapter host) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
260613 — TWiki deep dive (implementation, plugin API, ecosystem)
Date: 2026-06-13
What this is
A focused study of TWiki — the original "structured enterprise wiki / wiki
application platform" (Peter Thoeny, ~1998), and the file-based Perl counterpoint
to XWiki's Java/DB platform. Covers TWiki's implementation (Perl + flat-file +
RCS store, Webs/Topics, TWiki Forms, TWikiML/variables), the plugin API and
handler callbacks that extend the core, the extension package types (Plugin /
Skin / AddOn / Contrib) and repository, and TWiki's per-topic access control
(the prior art behind yawex's AccessControl).
Read through shard-wiki's lens, paired with the XWiki dive: TWiki shows the same "wiki-as-application-platform" goal reached with text files + RCS instead of a database — which changes the adapter story (direct on-disk attach, git-convertible history).
Complements:
research/260613-xwiki-deep-dive/— the DB/Java app-platform siblingresearch/260608-wikiengines-overview/— the landscape scanresearch/260608-yawex-prior-art/— yawex borrowed TWiki's per-topic AccessControl
Note: most of TWiki's community forked to Foswiki in Oct 2008 (from TWiki 4.2.4); findings flag where TWiki/Foswiki differ.
Contents
| Path | Role |
|---|---|
findings.md |
Architecture, plugin-handler API, ecosystem, capability profile, INTENT mapping, UC seeds, sources |
Status
Initial deep dive complete. Two new use cases promoted to
spec/UseCaseCatalog.md (UC-40, UC-41); UC-06/34/36/38/39 enriched with TWiki
specifics. Adapter-contract implications feed
workplans/SHARD-WP-0002-federation-architecture.md.