Contents

Development

Beagle is written in C# using Mono. The indexing is handled by Lucene.Net, a C# port of the Lucene indexer. The search user interface is written using Gtk#.

Beagle is an actively developed Open Source project, and contributions are encouraged. Patches can be attached to bugs in Bugzilla under the product beagle. Most ot the source code included in beagle is licensed under the MIT X11 License.

Check out the current to-do list.

Getting the code

The source code lives in the GNOME subversion repository under the module beagle. To check out Beagle from GNOME svn anonymously:

$ svn checkout http://svn.gnome.org/svn/beagle/trunk/beagle

Or, if you have a GNOME account:

$ svn checkout svn+ssh://svn.gnome.org/svn/beagle/trunk/beagle

Developer documentation

The Beagle Architecture Overview describes the general architecture of the system and takes you step-by-step through the indexing process.

If you are interested in adding support for a new application or file format to Beagle, we have both a Backend Tutorial and Filter Tutorial for you. First check the Supported Filetypes page to make sure we don't already support it.

If you are interested in writing a search client, you need to use the client API. Beagle provides client API in C, Python and C#. You can also process the output of beagle-query, the command-line beagle query tool. We have a guide for writing clients.

Other helpful links:

Projects using or depending on Beagle

To see the full list, visit the Applications page.

  • Nautilus: The GNOME file manager can use Beagle to quickly find files based on content and metadata.
  • Yelp: The GNOME help browser uses Beagle to search Docbook and man pages.
  • Deskbar: An "omnipresent versatile search interface" which can use Beagle as one of its many backends.
  • Tangerine: An application to publish your music over a local network using DAAP can find all your music automatically using Beagle.
  • Brasero: A CD/DVD-burning application can find files on your system using Beagle.
  • The SUSE Linux Enterprise Desktop main menu has a search entry which uses Beagle.
  • beaglefs: A FUSE filesystem built on top of Beagle.
  • Nemo: A file non-manager with an interface that is a cross between a calendar and a file browser with labels. Uses beagle for free text searching and metadata.
  • beagle-client-pylons: A web-based Beagle client written in Python and powered by the Pylons framework.

Projects similar to Beagle

  • Kat Desktop Search Environment. KDE Beagle equivalent, coded in C++, uses the C port of Lucene (cLucene) and inotify. Their wiki contains valuable information, like screenshots of other desktop search tools.
  • Tenor: The Contextual Linkage Engine. This project is at its very beginning, but aims at goals broader than what Beagle is doing (contextual queries, ...). There is not much in the subversion repository yet. This paper is worth a read.
  • Tracker. Tracker is a powerful desktop-neutral first class object database, tag/metadata database, search tool and indexer.
  • xfriend. Java-based Desktop-Search-Engine (proprietary with free version).
  • Strigi. A search and indexing tool for KDE based on clucene.
  • kio-clucene . An clucene-based search engine for KDE. It works as a search_in_indexed_files kio protocol, hence any data can be accessed from any application using "cl:/<my> <key> <words>".
  • sharehound. An open-source multiplatform network file systems indexer and searcher. Files and directories are indexed and searched by their pathes and some other external attributes, not contents. Supports SMB file shares (i.e. MS Windows-based network shares) and FTP resources. Web UI is used for search and crawl monitoring.
  • Lan-Crawler.Net. Lan-Crawler is a search machine for public network files shared via SMB shares written in C#, uses Lucene.Net and Firebird. A dynamic Web UI is provided for searching files. Meta data is downloaded for films.

This page was last modified 11:19, 8 July 2008. This page has been accessed 95,477 times.

  
MediaWiki

Copyright © 2004-2007