Development  »  Libraries

This is a list of Horde 6 PHP libraries developed by the Horde team. Additional libraries not yet released are available in our source repository in the development section of the site.

All of the libraries are fully independent of the Horde applications. Utilities such as our date handling library, the iCalendar module, or the natural language parsing of dates can be used without installing Kronolith. The same holds true for the IMAP and MIME libraries powering our webmailer IMP and for all packages available on Packagist. This allows you to embed functionality based on such libraries seamlessly into your own PHP application context.

Can't find a library listed for Horde 6? Not all libraries have been ported yet. Please check our Horde 5 Libraries page.

One of the strong advantages of the Horde PHP libraries is the fact that the code has been driven by the needs of the Horde applications. As these are being used by millions of users daily this means speedy code and maximal compatibility with systems not always adhering to standards (e.g. Outlook).

Obtaining Libraries

All Horde libraries are available on Packagist and are installed via Composer.

You can require any Horde library in your project with

composer require horde/library_name

The Horde_Date library could be installed like this for example:

composer require horde/date

 Horde Libraries

ActiveSync

A library for implementing an ActiveSync server.

Alarm

A library to deal with reminders, alarms and notifications through a standardized API. The following notification methods are currently available: standard Horde notifications, desktop notifications, emails.

Argv

A library for parsing command line arguments with various actions, providing help, grouping options, and more.

Auth

A library that provides a common interface into various authentication backends.

Autoloader

An autoload implementation and class loading manager for Horde.

Autoloader_Cache

An extension of the Horde autoloader that implements caching of class-file-maps. The caching method is determined automatically from the list of supported cache backends: APC, XCache, eAccelerator, local file system.

Backup

A library that drives the backup and restore features of Horde applications.

Browser

A library for getting information about the current user's browser and its capabilities.

Cache

A simple, functional caching library, with the option to store the cached data on the filesystem, APCu, eAcclerator, XCache, Memcache, MongoDB, Redis, user session, an SQL table, or a combination of these.

Cli

A library for basic command-line functionality and checks.

Cli_Application

A library that builds a complete command line application.

Cli_Modular

A library to allow application modules to influence the overall command line interface.

Compress

A library to wrap various compression techniques.

Compress_Fast

A libary that provides compression suitable for packing strings on-the-fly in PHP code (as opposed to more resource-intensive compression algorithms such as DEFLATE).

Constraint

A library for building constraints that evaluate values to true or false. Provides dual-stack API: PSR-4 modern implementation with PHP 8.1+ types (AllOf, AnyOf, IsNull, IsEqual, etc.) and PSR-0 legacy compatibility. Useful for validation, filtering, and conditional logic.

Controller

The controller part of an MVC system for Horde.

Crypt

A library that provides wrappers for various cryptographic systems.

Crypt_Blowfish

A library that provides blowfish encryption/decryption for PHP string data.

CssMinify

A library that wraps various CSS minification backends.

Css_Parser

A library that provides access to the Sabberworm CSS Parser from within the Horde framework.

Data

A data import and export library, with backends for: CSV, TSV, iCalendar, vCard, vNote, and vTodo

Date

A library for creating and manipulating dates.

Date_Parser

A library for natural-language date parsing, with support for multiple languages and locales.

Dav

A library that contains all Horde-specific wrapper classes for the Sabre DAV library.

Dns

Libraries for configuring DNS servers

ElasticSearch

A lightweight library for ElasticSearch (http://www.elasticsearch.org/).

EventDispatcher

A Horde implementation of PSR-14

Exception

A library that provides the default exception handlers for the Horde Framework.

Feed

A library for working with feed formats such as RSS and Atom.

Form

A library that provides form rendering, validation, and other functionality.

Group

A library for managing and accessing user group systems.

HashTable

A library that provides access to various hash table implementations.

History

A library that provides a way to track changes on arbitrary pieces of data in Horde applications.

Http

A library for making HTTP requests.

Http_Server

A PSR-15 compatible Server/RequestHandler implementation with limited ties to the Horde Framework.

Icalendar

A library for dealing with iCalendar and vCard data.

Identity

Foundation classes and interfaces for treating identities as first class citizens at the centre of resource ownership, authentication and authorization. Identity has roots in the concept of paypal principals and in decoupling login users from persona. Identity is *not* the same as Horde_Prefs_Identity which is more like an email profile but takes over some of its concepts.

Idna

A library that wraps various backends providing IDNA (Internationalized Domain Names in Applications) support.

Image

An image library, with backends for GD, GIF, PNG, SVG, SWF, ImageMagick's "convert" command line tool, imagick Extension.

Imap_Client

A library to access IMAP4rev1 (RFC 3501) mail servers. Also supports connections to POP3 (STD 53/RFC 1939).

Imsp

A library to access IMSP servers for address books and options.

Injector

A dependency injection container for Horde.

Itip

A library to generate MIME encapsuled responses to iCalendar invitations.

JavascriptMinify

JavascriptMinify_Jsmin

The JSMin javascript minifier driver for use with the Horde_JavascriptMinify library.

Jwt

Array

Kolab_Cli

A set of utilities to deal with the various aspects of a Kolab server as backend. The primary focus is dealing with the data stored in IMAP.

Kolab_Config

A library to read the various Kolab server configuration files. It should also support retrieving configuration parameters from LDAP but this is not yet implemented.

Kolab_Filter

The filters provided by this library implement the Kolab server resource management as well as some Kolab server sender policies.

Kolab_Format

A library that allows converting Kolab data objects from XML to data arrays.

Kolab_FreeBusy

Free/busy information for the users of a Kolab server. A Kolab client changing calendar data in an IMAP folder is required to call the triggering script provided within this package via HTTP. This will refresh the cache maintained by this package with partial free/busy data. This partial data sets are finally combined to the complete free/busy information once a client requests this data for a particular user.

Kolab_Resource

A library to allow booking of Kolab server resources.

Kolab_Server

A library to read and write entries in the Kolab user database stored in LDAP.

Kolab_Session

A library to store Kolab specific user data in the session.

Kolab_Storage

A library that deals with Kolab data storage effectively.

Ldap

A library for connecting to LDAP servers and working with directory objects.

Lens

A library for wrapping iterators to avoid looping over them multiple times, using a single decorator object (the "lens") instead of creating one decorator for every element.

ListHeaders

A library that parses Mailing List Headers as defined in RFC 2369 & RFC 2919.

Lock

A library that implements a resource locking system.

Log

A logging library with configurable handlers, filters, and formatting.

LoginTasks

A library for dealing with tasks run upon login to Horde applications.

Mail

A library that provides interfaces for sending e-mail messages and parsing e-mail addresses.

Mail_Autoconfig

A library to automatically determine configuration options for various remote mail services (IMAP/POP3/SMTP).

ManageSieve

A library that implements the ManageSieve protocol (RFC 5804).

Mapi

A library that provides various utility classes for dealing with Microsoft MAPI structured data.

Memcache

PSR-16 Simple Cache implementation for memcache with Horde-specific extensions. Supports large items (>1MB), multi-key retrieval, and both Memcache/Memcached PHP extensions.

Mime

A library that provides methods for dealing with Multipurpose Internet Mail Extensions (MIME) features (RFC 2045/2046/2047).

Mime_Viewer

A library that provides rendering drivers for MIME data.

Mongo

A library that wraps different MongoDB extensions to provide a consistent API.

Nls

A library for handling language data, timezones, and hostname->country lookups.

Notification

A library implementing a subject-observer pattern for raising and showing messages of different types and to different listeners.

Oauth

A library that provides OAuth 1.0a consumer support, OAuth 2.0 authorization server and client, and OpenID Connect provider capabilities for the Horde framework.

OpenXchange

A library to interact with Open-Xchange servers.

Otp

Implements HMAC-Based One-Time Password (HOTP, RFC 4226) and Time-Based One-Time Password (TOTP, RFC 6238) algorithms as immutable value objects.

Pack

A replacement library for serialize()/json_encode() that will automatically use the most efficient serialization available based on the input.

Pdf

A PDF generation library using only PHP, without requiring any external libraries.

Pear

A library that provides various tools to deal with PEAR. Among other features it allows updating the package.xml file or accessing a remote PEAR server.

Perms

A permissions system library.

Pgp

A library for dealing with OpenPGP (RFC 4880) data.

Prefs

A library that provides a common abstracted interface into various preferences storage mediums. It also includes all of the functions for retrieving, storing, and checking preference values.

PubSub

A Publish/Subscribe library that can act as an inter-app messaging hub.

Push

A library allowing to push simple definitions of content elements to a number of social network services.

Queue

A queue library with various storage backends and runners.

Rampage

Modern PHP application framework for Horde.

Rdo

Rampage Data Objects. Lightweight ORM library.

Refactor

An extendable library and command line tool to refactor files or complete directories.

Reflection

The Reflection library provides methods for generationg code reflection and automatic documentation of methods. The package has a driver based output generation and currently generates HTML and Text_Wiki output.

Release

Tools necessary to create the Horde distribution packages.

Role

Allows PEAR to install Horde components into a base Horde installation.

Routes

A library for mapping URLs into the controllers and actions of an MVC system. It is a port of a Python library, Routes, by Ben Bangert (http://routes.groovie.org).

Scheduler

A scheduler system library.

Scribe

Packaged version of the PHP Scribe client.

Secret

A library for encrypting and decrypting small pieces of data with modern authenticated encryption (Libsodium XSalsa20-Poly1305, AES-256-GCM) or legacy Blowfish. Provides dual-stack API: PSR-4 modern SecretManager with AEAD support, and PSR-0 Horde_Secret for backward compatibility.

Serialize

A library for encapsulating complex data into simple strings.

Service_Facebook

A client library for the Facebook REST API.

Service_Gravatar

A library for accessing the Avatar services at gravatar.com.

Service_Scribd

A client library for the Scribd API.

Service_Twitter

A client library for the Twitter REST API.

Service_UrlShortener

A library to interface with various URL shortening services.

Service_Vimeo

A client library for the Vimeo API.

Service_Weather

A library that provide an abstraction to various online weather service providers. Includes drivers for WeatherUnderground and WorldWeatherOnline.

SessionHandler

Horde_SessionHandler defines an API for implementing custom session handlers for PHP.

Share

A library to access all shared resources a user owns or has access to.

Smtp

A library for connecting to a SMTP (RFC 5321) server to send e-mail messages. Also supports LMTP.

Socket_Client

A library that provides an abstract PHP network socket client.

Spam

An abstraction library for systems that allow the reporting of spam or innocent email messages. Supported systems include reporting via email redirection and digest reports, and through an executable.

SpellChecker

A library that provides an unified spellchecking API.

Stream

A library that provide an object-oriented interface to assist in creating and storing PHP stream resources, and to provide utility methods to access and manipulate the stream contents.

Stream_Filter

A library of various stream filters.

Stream_Wrapper

A library of stream wrappers.

Stringprep

PHP implementation library of StringPrep and PRECIS Profiles RFC 3454 - Preparation of Internationalized Strings ("stringprep"). RFC 7564 - PRECIS

Support

Support library not tied to Horde but used by it.

SyncMl

A library that provides an API for processing SyncML requests.

Template

Horde Template system. Adapted from bTemplate, by Brian Lozier . Consider using horde/view instead.

Test

Horde-specific PHPUnit base classes.

Text_Diff

A library that provides a text-based diff engine and renderers for multiple diff output formats.

Text_Filter

A library for filtering and converting text.

Text_Filter_Jsmin

The JSMin javascript minifier driver for use with the Horde_Text_Filter library.

Text_Flowed

A library that provides common methods for manipulating text using the encoding described in RFC 3676 ('flowed' text).

Text_Textile

A Humane Web Text Generator.

Thrift

Packaged version of the PHP Thrift client

Timezone

A library for parsing timezone databases and generating VTIMEZONE iCalendar components.

Token

A library that provides a common abstracted interface into the various token generation mediums. It also includes all of the functions for retrieving, storing, and checking tokens.

Translation

A translation wrappers library.

Tree

A library providing tree views of hierarchical information. It allows for expanding/collapsing of branches and maintains their state.

Url

A library that provides URL objects and methods for manipulating URLs, including a bridge from/to PSR-7 uris

Util

A library that provides functionality useful for all kind of applications.

Vcs

A library that provides a generalized API to multiple version control systems.

View

A library that provides a simple View pattern implementation.

Xml_Element

A library that provides an element object that can be used to provide SimpleXML-like functionality over a DOM object. The main advantage over using SimpleXML is the ability to add multiple levels of new elements in a single call, without introducing "ghost" objects.

Xml_Wbxml

A library for encoding and decoding WBXML documents used in SyncML and other wireless applications. Encoding and decoding of WBXML (Wireless Binary XML) documents. WBXML is used in SyncML for transferring smaller amounts of data with wireless devices.

Yaml

A library for parsing YAML files into PHP arrays, and dumping PHP arrays into YAML encoding.

composer

Handle composer.json files and composer directory structures without composer dependency

githubapiclient

Github REST API Client.

hordectl

A setup utility for manipulating horde application contents.

hordeymlfile

Handle .horde.yml file and changelog.yml file

hordweb

A setup utility for manipulating horde application contents.

model

An unfinished replacement for horde/forms from the H4 incubator CVS.

phpconfigfile

PHP 8 style wrappers for reading and writing config files

text_wiki

Parse structured wiki text and render into arbitrary formats such as XHTML, LaTeX, plain text, and Docbook. Supports multiple wiki markup formats including Mediawiki, Tiki, Creole, DokuWiki, BBCode, and Cowiki. Originally forked from PEAR Text_Wiki packages, now modernized for PHP 8+ with PSR-4 autoloading.

version

Handle Semantic Version 2.0.0 format and similar semantic version formats

Released Libraries