User Tools

Site Tools


Contributing code

Want to develop for Evergreen or OpenSRF? Great! To get started, please take a look at

For more technical details, read on.


Evergreen is an OpenSRF application, so in principle you can write an OpenSRF binding for any language you want (although we will be both seriously impressed and laugh at you if you create a BASIC binding). However, in practice, Evergreen makes use of just a few languages, and for the sake of maintaining your code and understanding it, please consider sticking with one of the following.

Language Use
Perl business logic; the vast majority of OpenSRF methods used by Evergreen are written in Perl. Note that this is Perl 5, not Perl 6.
JavaScript front end; important for both the staff client and the public catalog
PL/pgSQL and PL/Perl search code and some business logic
HTML and CSS public catalog and staff client

Languages that are used for specific purposes include

Language Use
C core OpenSRF code; can be considered for middle-layer OpenSRF services if speed is important enough
XUL staff client layout

Languages that are supported (partially or wholly) by OpenSRF but are not really in use by Evergreen include Java and Python.


Evergreen makes use of the following frameworks:

Name Language Use Notes
Dojo JavaScript staff and public interfaces Currently we use Dojo 1.3; help to upgrade us to 1.6 1.7 (or whatever is current when you read this) would be greatly appreciated
dev/contributing_code.txt · Last modified: 2022/02/10 13:34 by

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.