# Evergreen (software)

Evergreen is an open-source integrated library system (ILS), initially developed by the Georgia Public Library Service for Public Information Network for Electronic Services (PINES), a statewide resource-sharing consortium with over 270 member libraries.
Beyond PINES, the Evergreen ILS is deployed worldwide in approximately 1,800 libraries, and is used to power a number of statewide consortial catalogs.
In 2007, the original Evergreen development team formed a commercial company around the software, Equinox Software, which provides custom support, development, migration, training, and consultation for Evergreen. Equinox Software was later supplanted by the Equinox Open Library Initiative, a non-profit. As of 2014, several more companies and groups also provide support and related services for Evergreen.

## History

Evergreen was developed by the Georgia Public Library Service (GPLS) to support 252 public libraries in the Public Information Network for Electronic Services (PINES) consortium. Development began in June 2004 when state librarian Lamar Veatch announced in an open letter that after reviewing options available, GPLS decided to develop its own library automation system. GPLS believed it could develop a system customized to fit its needs better at a lower cost than the fees currently being paid. Programmers in the GPLS developed the project for two years, and PINES successfully completed the transition to Evergreen on September 5, 2006. In the next two years, the PINES consortium increased to over 270 libraries and five other systems in the United States and Canada implemented Evergreen.
The software started receiving contributions from other libraries and developers in 2007. 2009 saw the first Evergreen International Conference. In 2012, the community joined the Software Freedom Conservancy and formed an oversight board. In 2019 the Evergreen Community elected an Evergreen Project board as part of their transition to a stand-alone non-profit organization.
Other Evergreen implementations in North America:
* Ann Arbor District Library (Michigan, 5 branches)
* Beauregard Parish Library (Louisiana, 6 branches)
* BC Libraries Cooperative - Sitka (consortium of 92 multitype libraries, 150+ branches in BC and Manitoba)
* Consortium Of Ohio Libraries COOL (13 libraries)
* CW MARS (Massachusetts, 155 libraries)
* Evergreen Indiana (129 libraries)
* Kenton County Public Library (Kentucky, 3 libraries)
* King County Library System (Washington, 50 libraries)
* Library of Virginia (Evergreen Virginia) (10 libraries)
* Maine Balsam (10 libraries)
* Mohawk College Library (3 libraries)
* NC Cardinal (North Carolina, 216 libraries)
* Missouri Evergreen (52 Libraries districts, 133 service locations)
* Niagara Libraries (Ontario, 11 libraries),
* North of Boston Library Exchange (NOBLE) (Massachusetts, 28 libraries)
* North Texas Library Consortium (rural area outside Fort Worth, 17 libraries),
* PaILS is the Pennsylvania Integrated Library System (ILS), over 100 libraries,
* Pioneer Library System (Upstate New York between Rochester and Syracuse, 42 libraries),
* Sage Library System (Northeast Oregon, 60 libraries)
* SCLENDS (South Carolina, 72 libraries)
* SPARK (Pennsylvania, 110 libraries and growing)
* SPRUCE (Manitoba, Canada, 8 libraries)
* Traverse Area District Library (Michigan, 6 libraries)
* Westchester County Library System (New York, 43 libraries)

## Features

Development priorities for Evergreen are that it be stable, robust, flexible, secure, and user-friendly.
Evergreen's features include:
* Circulation: for staff to check items in and out to patrons
* Cataloging: to add items to the library's collection and input information, classifying and indexing those items. Evergreen is known for an extremely flexible indexing system that allows for a high level of customization and by default uses Library of Congress MODS as its standard.
* Online public access catalog: a public catalog, or discovery interface, for patrons to find and request books, view their account information, and save book information in Evergreen lists. There is also an optional Children's catalog. Various patron services such as paying bills by PayPal and Stripe, optional retaining of circulation history, book lists and more.
* Self Service - Evergreen comes with self checkout and registration options that can be activated by the libraries.
* The public catalog exposes structured web data by schema.org standards to aid discovery by major search engines.
* Acquisitions: for staff to keep track of those materials purchased; invoices, purchase orders, selection lists, etc.
* Authorities
* Serials
* Web based staff client that is OS independent
* Added Content services Chillifresh, Content Cafe, Novelist, OpenLibrary and Syndetics natively supported with others supportable.
* Native APIs for writing custom clients.
* Statistical Reporting: flexible, powerful reporting for retrieval of any statistical information stored in the database.
* SIP 2.0 support: for interaction with computer management software, self-check machines, and other applications.
* Search/Retrieve via URL and Z39.50 servers
Evergreen also features the Open Scalable Request Framework (OpenSRF, pronounced 'open surf'), a stateful, decentralized service architecture that allows developers to create applications for Evergreen with a minimum of knowledge of its structure.

## Languages

The business logic of Evergreen is written primarily in Perl and PostgreSQL, with a few optimized sections rewritten in C. The catalog interface is primarily constructed using Template Toolkit with some JavaScript. The staff client user interface is written in Mozilla's XUL (XML + JavaScript) before 3.0 and is a web based staff client built using AngularJS and related technologies as of 3.0. Python is used for the internationalization build infrastructure. EDI functionality for the acquisitions system prior to 3.0 depended upon Ruby but no longer does. AngularJS interfaces are now being transitioned to Angular and all new interface work is being done in Angular.

## Requirements

Evergreen runs on Linux servers and uses PostgreSQL for its backend database. The staff client used in day-to-day operations by library staff runs on Microsoft Windows, Macintosh, or Linux computers and is built on XULRunner, a Mozilla-based runtime that uses the same technology stack as Firefox and allows for a browser-independent offline mode. The online public access catalog (OPAC) used by library patrons is accessed in a Web browser. As of version 3.0 the web based staff client was promoted to production use and the XUL based staff client that required local machine installation began being phased out.

## Other open-source integrated library systems

* BiblioteQ
* Koha
* Invenio
* PMB
* OpenBiblio
* OPALS
* FOLIO