Home image| imageAbout Snarferimage | imageDevelopment Wikiimage | imageLanguage Packsimage | imageAbout Snarfware image | imageContact Usimage

image
image
image
image Company
image image
image Press Releases
image
image Privacy Statement
image
image Legal Notice
image
image Snarfer License
image
image Snarfer Technology
White Paper
image
image Snarfer Change Log
image
   
image
image
image Snarfer Technology White Paper
image

     This white paper will try and provide all the essential ingredients to understand the technology behind Snarfer. If you require more details or clarification please contact us or visit www.snarfware.com. Those reviewing Snarfer may be interested in the underlying technical story (why Snarfer is relevant, underlying technology, the product, and other issues). This document is focused on the big story technical aspects of Snarfer. Those of you not interested in the technology specifics of Snarfer need read no further, start your Snarfer and enjoy the magic!

So what's Snarfer all about?

     While surfing the Internet have you noticed all those little RSS, XML, or ATOM buttons popping up on webpages and blogs? Did you ever wish you could read them but didn't have the right software? Well now you do, it's called Snarfer. Snarfer is a RSS/XML/ATOM news syndication aggregator which presents information to users in a simple to use interface. Snarfer does NOT have any spyware or malware embedded in it. And best of all Snarfer is FREE!

     A small amount of background is in order at this point. News syndication is 'the process' where the RSS/XML/ATOM feeds are 'the technology'. XML is the core technology that RSS/ATOM are built on but to Snarfer none of this really matters since it's designed to work with any of these. The news syndication 'feeds' are the container holding the information listed as 'messages' which are sequentially-updated content that could contain blog posts, news articles, photographs, and much more.

     News syndication is the ultimate in pull technology allowing users to control what, when, and where information is pulled from. Imagine you're a news junkie and like to read forty newspapers online daily. You'd have to bookmark all those sites, go to each one, wade through tons of material, and after some time you might find what your looking for. With Snarfer you simply and easily add each of your sources' 'feeds' to Snarfer and it will pull the messages into its database (hourly). Now when you're ready to read all the messages are waiting for you. This is but one use for Snarfer but the same methodology applies if the feed is a blog, FAQ, photo database, search engine results (automatic and repeatable searches), or others. Snarfer is only limited by the imagination of news syndication sources and ensures users are ready to take advantage of whatever is available.

     Snarfer is handcrafted in C++ with a small amount of assembly language code. Every line of code is meticulously written to provide efficient code execution and stability. Everything to do with Snarfer is designed to be tiny and fast resulting in an install file of under 250Kb compared to like applications that are at least 4-92X larger. We do not use any commercial installers, databases, or outside software libraries. This gives us greater flexibility and delivers a number of development advantages.

     The small size of Snarfer is an absolutely incredible feat when you consider that Snarfer includes a simplified relational database with basic SQL querying ability that performs nested selects and soon will be capable of joins. The database includes a built-in stored procedure compiler to provide even faster database querying. This underlying database technology is part of Snarfer's secret sauce that will enable many exciting functions in future versions.

     To extend beyond the core code base Snarfer uses a plugin architecture that is in stage 1 of implementation. At this time it handles feed protocols and import/export operations. This architecture will be extended to handle items like USENET, email, instant messaging, IRC, or other desktop extensions. The plugins will also provide various extensions to the user interfaces such as right click menu extensions, add on property pages, searching operations, and others. Future plans call for an SDK so developers may add custom features to Snarfer.

     Another important design consideration was to provide that the whole user interface will be skinnable, allowing the user to change the appearance of Snarfer. Users, websites, businesses, or groups will be able to create a custom look and feel to Snarfer and then provide it free of charge to their visitors or members.

     To ensure current and future compatibility Snarfer supports an extremely wide range of formats and modules. Currently Snarfer supports RSS (0.9x, 1.00, and 2.00), ATOM (0.3, 1.0), and modules like dublin core, syndication, content:encoding, xhtml:body.

     To maximize speed while at the same time reducing bandwidth Snarfer uses HTTP conditional GETs, RFC3229 feed extensions, and gzip/deflate encoding. While many users have high speed connections many don't so bandwidth usage is still an important design consideration.

     Unlimited folders and subfolders (multi-level subfolders are also allowed) in the tree allow users to organize feeds to match their usage style. The tree design also allows a feed to appear in multiple folders without the same message being downloaded multiple times.

Snarfer Change Log [View]

image
   
image
 
image