Reference implementation

In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is the standard from which all other implementations and corresponding customizations are derived. A reference implementation often accompanies a technical standard.

Characteristics and examples

Reference implementations of algorithms, for instance cryptographic algorithms, are often the result or the input of standardization processes. In this function they are often dedicated to the public domain with their source code as public domain software. Examples are the first CERN's httpd,[1] Serpent cipher, base64 variants,[2] and SHA-3.[3] The Openwall Project maintains a list of several algorithms with their reference source code in the public domain.[4]

A reference implementation may or may not be production quality. For example, the Fraunhofer reference implementation of the MP3 standard usually does not compare favorably to other common implementations, such as LAME, in listening tests that determine sound quality. In contrast, CPython, the reference implementation of the Python programming language,[5] is also the implementation most widely used in production.




Characteristics of a Reference Implementation:

  1. Developed concurrently with the specification and test suite;
  2. Verifies that specification is implementable;
  3. Enables the test suite to be tested;
  5. Helps to clarify the intent of the specification in situations where conformance tests are inadequate[7]


  1. The birth of the web Licensing the web on (2014)
  2. libb64 on sourceforge
  3. mainReference.c "The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. For more information, feedback or questions, please refer to our website: by the designers, hereby denoted as "the implementer". To the extent possible under law, the implementer has waived all copyright and related or neighboring rights to the source code in this file."
  4. Source code snippets and frameworks placed in the public domain on
  5. Snow, Eric (26 January 2012). "PEP 421 -- Adding sys.implementation". Python Software Foundation. Archived from the original on 7 January 2017. Retrieved 6 January 2017. For a number of years now, the distinction between Python-the-language and CPython (the reference implementation) has been growing.
  6. Dalci, Eric; Fong, Elizabeth; Goldfine, Alan (2003). Requirements for GSC-IS Reference Implementations. National Institute of Standards and Technology, Information Technology Laboratory. [ Requirements for GSC-IS Reference Implementations]
  7. Curran, Patrick (2003). Conformance Testing: An Industry Perspective. Sun Microsystems.