Fins: a modern web development framework
Created by hww3. Last updated by hww3,
4 years ago. Version #63.
What is Fins, and why would I want to use it?
Fins is a modern web application framework written in Pike. Fins uses the MVC
design architecture, and thus is similar to Ruby on Rails.
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.
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.
This website is powered by FinScribe
, which was the original Fins technology demonstration application that's taken on a life of its own.
- February 15, 2012 Version 0.9.5 (ZIP), containing all the necessary prerequisite modules, is now available. Updated the step by step ModelDemo.
- April 20, 2010 A snapshot (Fins-0.9.zip) of the Fins framework is now available that bundles the prerequisite modules, allowing you to get started using Fins quickly.
- November 16, 2009 View the slides from the Fins presentation at Copenhagen Open Source Day
- October 24, 2009 Learn about Fins at Copenhagen Open Source Day
- April 4, 2008 Added Acknowledgements page.
- February 26, 2008 Added FinsAddins project to Mercurial. First release contains a set of components for handling user authentication.
- February 15, 2008 A snapshot (Fins-0.8.zip) of the Fins framework is now available that bundles the prerequisite modules, allowing you to get started using Fins quickly.
- February 27, 2007 Added an end-to-end example of getting Fins downloaded, installed and hooked to a set of database tables. Check out ModelDemo.
- February 14, 2007 Updated Fins starter kit to version 0.2 of Fins. See Windows for details and download location.
A semi-complete list of features is available at the Features
page. More features are constantly being added, so check back often!
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 Windows
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 Mercurial repository
, though there is a chance that the trunk of the tree may be non-working at any given time.
See the Developer
page for additional documentation, including Module reference documentation.
- Pike 7.8 or newer
- 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.
Additionally, if using Mercurial source:
- Tools.ConfigFiles (available from modules.gotpike.org)
: The Fins framework will run on all platforms supported by Pike. Note that there are some minor limitations on the Windows platform, see Windows
There are a number of options for deployment of your Fins applications:
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 :)
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 Packaging
- The ubiquitous Hello, World application, available from Mercurial.
- a demo interface to SmugMug featuring AJAX functionality; download the code from samples.
- a FullText XMLRPC provider using Xapian; available from my Mercurial repository.
- The Model framework would lend itself nicely to all sorts of non-web applications, as well.
The Hello World and SmugMug applications are bundled with Fins in Mercurial, so if you get a snapshot, you'll be all set!
If you've developed an application using Fins, please send us a note and we'll include it here!
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):
- Convenience functions for easier development (see DocController for an example of this)
- Administration tools (in progress)
- ModelRamblings (in progress)
- SOAP controller
- Scaffolding (in progress)
- AJAX (because everybody loves it, right? :)) Update: we have several features that make AJAX easier. See the Developer page for info.
- Documentation (in progress)
- A cool logo
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 at
This page (pike/Fins) contains
Posted in pike
and web apps
| 3 PingBacks