<?xml version="1.0"?>
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom" xmlns:html="http://www.w3.org/1999/xhtml">
  <atom:id>http://bill.welliver.org/atom/pike/Fins</atom:id>
  <atom:title type="text">electronic.alchemy :: Fins: a modern web development framework</atom:title>
  <atom:updated>2026-05-04T04:31:32-04:00</atom:updated>
  <atom:link href="http://bill.welliver.org/atom/pike/Fins" type="application/atom+xml"></atom:link>
  <atom:link href="http://bill.welliver.org/space/pike/Fins" type="text/html"></atom:link>
  <atom:link href="http://bill.welliver.org/rss/pike/Fins" type="application/rss+xml"></atom:link>
  <atom:generator uri="http://modules.gotpike.org/blahblah/Public.Syndication.ATOM" version="0.1">Public.Syndication.ATOM (Pike v8.0 release 702)</atom:generator>
  <atom:icon>http://bill.welliver.org/favicon.ico</atom:icon>
  <atom:logo>http://bill.welliver.org/static/images/alchemy.gif</atom:logo>
  <atom:subtitle type="xhtml"><html:div xmlns:html="http://www.w3.org/1999/xhtml"><html:h3 class="heading-1">What is Fins, and why would I want to use it?</html:h3><html:p class="paragraph"/>
Fins is a modern web application framework written in Pike. Fins uses the <html:a href="http://en.wikipedia.org/wiki/Model_view_controller" class="wiki_link_external">MVC</html:a> design architecture, and thus is similar to Ruby on Rails.<html:p class="paragraph"/>
Basically, this means that Fins is a toolkit for developing web applications (as opposed to simpler CGI scripts and such.) The MVC approach to software design splits an application into 3 sections, or areas of responsibility: the data model, event handling and coordination, and the user interface. In addition to using the MVC paradigm, Fins employs a "convention over configuration" approach, which means that if you follow a few simple patterns when developing your application, Fins will do a lot of the hard work for you.<html:p class="paragraph"/>
If you're a Pike developer whose needs have moved beyond simple web scripts, Fins may be just the ticket for you. Similarly, if you're a Java (or C/C++ developer, even) who prefers a C/Java-like syntax but is frustrated by the amount of effort it takes to get simple tasks done (XML configuration files, anyone?), you should consider Pike and Fins. You'll likely be pleasantly surprised how much more efficient (and fun) working with Fins can be.<html:p class="paragraph"/>
This website is powered by <html:a href="/space/pike/FinScribe">FinScribe</html:a>, which was the original Fins technology demonstration application that's taken on a life of its own.<html:p class="paragraph"/>
<html:h3 class="heading-1">News&#xD;</html:h3>
<html:ul class="minus">
<html:li><html:i class="ital">February 15, 2012</html:i> Version 0.9.5 (<html:a href="http://bill.welliver.org/dist/Fins/Fins-0.9.5.zip" class="wiki_link_external">ZIP</html:a>), containing all the necessary prerequisite modules, is now available. Updated the step by step <html:a href="/space/pike/Fins/Developer/ModelDemo">ModelDemo</html:a>.</html:li>
<html:li><html:i class="ital">April 20, 2010</html:i> A snapshot (<html:a href="http://bill.welliver.org/dist/Fins/Fins-0.9.zip" class="wiki_link_external">Fins-0.9.zip</html:a>) of the Fins framework is now available that bundles the prerequisite modules, allowing you to get started using Fins quickly.</html:li>
<html:li><html:i class="ital">November 16, 2009</html:i> <html:a href="/space/pike/Fins/Fins_short_presentation.pdf" class="wiki_link_external">View</html:a> the slides from the Fins presentation at Copenhagen Open Source Day</html:li>
<html:li><html:i class="ital">October 24, 2009</html:i> Learn about Fins at Copenhagen Open Source Day</html:li>
<html:li><html:i class="ital">April 4, 2008</html:i> Added <html:a href="/space/pike/Fins/Acknowledgements">Acknowledgements</html:a> page.</html:li>
<html:li><html:i class="ital">February 26, 2008</html:i> Added FinsAddins project to <html:a href="http://hg.sr.ht/~hww3/finsaddins" class="wiki_link_external">Mercurial</html:a>. First release contains a set of components for handling user authentication.</html:li>
<html:li><html:i class="ital">February 15, 2008</html:i> A snapshot (<html:a href="http://bill.welliver.org/dist/Fins/Fins-0.8.zip" class="wiki_link_external">Fins-0.8.zip</html:a>) of the Fins framework is now available that bundles the prerequisite modules, allowing you to get started using Fins quickly.</html:li>
<html:li><html:i class="ital">February 27, 2007</html:i> Added an end-to-end example of getting Fins downloaded, installed and hooked to a set of database tables. Check out <html:a href="/space/pike/Fins/Developer/ModelDemo">ModelDemo</html:a>.</html:li>
<html:li><html:i class="ital">February 14, 2007</html:i> Updated Fins starter kit to version 0.2 of Fins. See <html:a href="/space/Pike/Fins/Windows">Windows</html:a> for details and download location.</html:li>
</html:ul> &#xD;
<html:h3 class="heading-1">Features</html:h3><html:p class="paragraph"/>
A semi-complete list of features is available at the <html:a href="/space/pike/Fins/Features">Features</html:a> page. More features are constantly being added, so check back often!<html:p class="paragraph"/>
<html:h3 class="heading-1">Getting Started</html:h3><html:p class="paragraph"/>
The easiest way to get started using Fins is to download the Fins/Win archive, and install that. The archive works just fine on Windows, MacOSX and Unix, and saves you the effort of having to install some of the smaller ancillary modules. Just follow the instructions at <html:a href="/space/pike/Fins/Windows">Windows</html:a>.<html:p class="paragraph"/>
While there are no official releases of the Fins framework, you can grab the 0.95 snapshot described above. Alternately, you can download the latest from the <html:a href="http://hg.sr.ht/~hww3/fins" class="wiki_link_external">Mercurial repository</html:a>, though there is a chance that the trunk of the tree may be non-working at any given time.<html:p class="paragraph"/>
<html:h3 class="heading-1">Developer Documentation</html:h3><html:p class="paragraph"/>
See the <html:a href="/space/pike/Fins/Developer">Developer</html:a> page for additional documentation, including Module reference documentation.<html:p class="paragraph"/>
<html:h3 class="heading-1">Requirements&#xD;</html:h3>
<html:ul class="minus">
<html:li>Pike 8.0 or newer</html:li>
<html:li>A supported database module (SQLite, MySQL or PostgreSQL). SQLite and MySQL are better tested than PostgreSQL, but we will fix any problems with the PostgreSQL support.</html:li>
</html:ul>Additionally, if using Mercurial source:&#xD;
<html:ul class="minus">
<html:li>Tools.ConfigFiles (available from modules.gotpike.org)</html:li>
</html:ul><html:i class="ital">Note</html:i>: The Fins framework will run on all platforms supported by Pike. Note that there are some minor limitations on the Windows platform, see <html:a href="/space/pike/Fins/Windows">Windows</html:a> for details.<html:p class="paragraph"/>
<html:h3 class="heading-1">Deployment Options</html:h3><html:p class="paragraph"/>
There are a number of options for deployment of your Fins applications:&#xD;
<html:ul class="minus">
<html:li><html:a href="/space/pike/Fins/FinServe">FinServe</html:a>, a standalone HTTP server.</html:li>
<html:li><html:a href="/space/pike/Fins/Caudium">Caudium</html:a></html:li>
<html:li><html:a href="/space/pike/Fins/FastCGI">FastCGI</html:a></html:li>
<html:li><html:a href="/space/pike/Fins/SCGI">SCGI</html:a></html:li>
</html:ul>It should theoretically be possible to run Fins applications using CGI, however, the overhead of launching a Pike interpreter and initializing the application for each request would be prohibitively slow, so we won't entertain that option :)<html:p class="paragraph"/>
We're also proud of a relatively new feature that allows Fins applications to be packaged for easy installation. Read more about it at the [ create <html:a href="/exec/edit/pike/Fins/Packaging">Packaging</html:a>] page.<html:p class="paragraph"/>
<html:h3 class="heading-1">Fins Applications&#xD;</html:h3>
<html:ul class="minus">
<html:li><html:a href="/space/pike/FinScribe">FinScribe</html:a></html:li>
<html:li>The ubiquitous Hello, World application, available from <html:a href="http://hg.sr.ht/~hww3/finsexamples" class="wiki_link_external">Mercurial</html:a>.</html:li>
<html:li>a demo interface to SmugMug featuring AJAX functionality; download the code from <html:a href="http://bill.welliver.org/dist/Fins/samples" class="wiki_link_external">samples</html:a>.</html:li>
<html:li>a <html:a href="/space/pike/Fins/FullText">FullText</html:a> XMLRPC provider using <html:a href="http://www.xapian.org" class="wiki_link_external">Xapian</html:a>; available from my <html:a href="http://hg.sr.ht/~hww3/fulltext" class="wiki_link_external">Mercurial</html:a> repository.</html:li>
<html:li>The Model framework would lend itself nicely to all sorts of non-web applications, as well.</html:li>
</html:ul>The Hello World and SmugMug applications are bundled with Fins in Mercurial, so if you get a snapshot, you'll be all set!<html:p class="paragraph"/>
If you've developed an application using Fins, please send us a note and we'll include it here!<html:p class="paragraph"/>
<html:h3 class="heading-1">Future Directions</html:h3><html:p class="paragraph"/>
As we mentioned earlier, Fins is very early on in its development lifecycle. There's lots of room for enhancement, and plenty of opportunities for participation. Things we're thinking about for future releases include (in no particular order):&#xD;
<html:ul class="minus">
<html:li>Convenience functions for easier development (see DocController for an example of this)</html:li>
<html:li>Administration tools (<html:i class="ital">in progress</html:i>)</html:li>
<html:li><html:a href="/space/pike/Fins/ModelRamblings">ModelRamblings</html:a> (<html:i class="ital">in progress</html:i>)</html:li>
<html:li>SOAP controller</html:li>
<html:li>Scaffolding (<html:i class="ital">in progress</html:i>)</html:li>
<html:li>AJAX (because everybody loves it, right? :)) Update: we have several features that make AJAX easier. See the <html:a href="/space/pike/Fins/Developer">Developer</html:a> page for info.</html:li>
<html:li>Documentation (<html:i class="ital">in progress</html:i>)</html:li>
<html:li>A cool logo</html:li>
</html:ul>If you're interested in helping out with any of these items, or if you have some  additions for the list, we'd be glad to hear from you. Drop Bill a line at bill <html:b class="bold">at</html:b> welliver <html:b class="bold">dot</html:b> org.</html:div></atom:subtitle>
</atom:feed>
