Apache SpamAssassin is an extensible email filter that is used to identify spam. Once identified, the mail can then be optionally tagged as spam for later filtering. It provides a command line tool to perform filtering, a client-server system to filter large volumes of mail, and Mail::SpamAssassin, a set of Perl modules allowing Apache SpamAssassin to be used in a wide variety of email systems.
Redland is a set of C libraries providing a high-level API for the Resource Description Framework (RDF), allowing it to be stored, parsed, serialized, queried, and manipulated. It has an object-based, modular design and comes with detailed reference documentation and examples. Redland supports all RDF vocabularies such as FOAF, RSS 1.0, Dublin Core, DOAP, and OWL, the query languages SPARQL and RDQL, and all RDF syntaxes including Turtle, RDF/XML, RDF/JSON, RSS, Atom, RDFa, and GRDDL.
Raptor is a C library providing a set of parsers and serializers for Resource Description Framework (RDF) triples by parsing syntaxes into RDF triples and serializing triples into a syntax. The parsers support RDF/XML, N-Triples, GRDDL, and Turtle, and via RSS tag soup: XML RSS, Atom 0.3, and Atom 1.0. The serializers support RDF/XML (3 flavours), Turtle, DOT, N-Triples, RSS 1.0, and Atom 1.0. Raptor handles RDF/XML as used by RDF applications such as RSS 1.0, FOAF, DOAP, Dublin Core, and OWL. It can use either expat or libxml2 for XML parsing, libcurl when available for URI retrieval, and is portable to many POSIX systems.
The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform- specific implementations. The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.
Template Data Interface (TDI, /ʹtedɪ/) is a markup templating system written in Python with (optional but recommended) speedup code written in C. Unlike most templating systems, TDI does not invent its own language to provide functionality. Instead, you simply mark the nodes you want to manipulate within the template document. The template is parsed, and the marked nodes are presented to your Python code, where they can be modified in any way you want.
Studs MVC Framework+ contains a port of Apache's Jakarta Struts to PHP, though the libraries included in the rest of the project are much more vast. In order to implement the Struts port, it was necessary to build a core, object-oriented API in the style of the JDK and the Jakarta Commons, a servlet container to handle HTTP requests and to invoke servlet classes, and finally, a parsing engine for JSP-style template pages. In the end, the result is an environment which is very similar to that provided by a J2EE Web Container, only everything is implemented in PHP. While it was possible to carry over many of the concepts, designs and mechanisms from J2EE, some limitations do exist due to the nature of the PHP programming language, such as the lack of checked exceptions (runtime only).
Google Gadgets for Linux provides a platform for running Google Gadgets under Linux, catering to the unique needs of Linux users. It's compatible with the gadgets written for Google Desktop for Windows as well as the Universal Gadgets on iGoogle. There are two main components to the application: one is a common gadget library responsible for running and presenting a gadget, and the other is a host program that allows the user to choose gadgets and run them on the desktop. Currently it has hosts written for GTK+ and Qt, with the GTK+ host offering a sidebar similiar to that of Google Desktop for Windows.