Historical Note

Saxon has been under development since 1998. Throughout that time the development has been led by Michael Kay.

Saxon was originally written to support an internal project in ICL (now part of Fujitsu), and ICL continued to sponsor development of Saxon until Michael Kay left the company in January 2001. ICL chose not to market it as a commercial product, but to make the code available to the public under the Mozilla public license. From 2001 through 2003 Michael Kay worked for Software AG, who continued to sponsor the development of Saxon as an open source product.

In March 2004 Michael Kay founded Saxonica Limited to provide ongoing development and support of Saxon as a commercial venture. Saxonica continues to develop the open source version of Saxon (Saxon-HE), while at the same time delivering additional software (Saxon-PE and Saxon-EE, and more recently SaxonCS) as commercial offerings. The commercial product incorporates the code of the open-source product in its entirety, with many additions such as schema processing, streaming, advanced optimization, and multi-threading, and it is produced in accordance with the provisions defined by the Mozilla Public License.

The port of Saxon to the .NET platform was pioneered by Pieter Siegers Kort and M. David Peterson, without any involvement from Saxonica. They used the open source IKVM tool to cross-compile Java bytecode into CIL assemblies. Their work was absorbed into the Saxonica product line from Saxon 8.7 onwards. At this stage a new .NET API was developed, and the product made much greater use of .NET services such as collations and regular expression processing. In 2019 Microsoft announced that the future of .NET lay with .NET Core, and that .NET Framework would be discontinued. IKVM has never supported .NET Core, and was no longer being developed, so a new approach was necessary. Saxonica decided to develop transpiler technology to convert the Java source code to C#, and the result is being shipped as SaxonCS.

It is unfortunately not possible to release SaxonJ-HE under any license other than the Mozilla Public License. Although the amount of code from external contributors is small, it is not practically feasible to obtain the necessary permission from all these people to release under a different license. From Saxon 9.5, Saxonica moved forward to the Mozilla Public License 2.0; the differences are only of interest to lawyers, but the language is more concise and readable.

In 2010 Saxonica started work on a prototype of Saxon-CE, a cut-down version of Saxon cross-compiled to run in the browser using the Google Web Toolkit (GWT). This was released as a product in June 2012. However, the use of GWT imposed severe constraints, and in 2016 Saxonica embarked on a replacement, Saxon-JS, written in pure Javascript, which was released in February 2017.

Saxon/C was first released (as a beta) in November 2013, and new releases have appeared regularly since. Saxon/C uses the Excelsior JET technology to compile the Java source code "ahead of time" into executable machine code for the target hardware architecture; the Java code is augmented with an API layer providing call interfaces from C, C++, PHP, and Python. Although the company that produced Excelsior JET is now defunct, the technology still works, and we are completing current work in progress using JET while at the same time starting to explore alternative ways forward for the future.

The name Saxon was chosen because originally it was a layer on top of SAX. Also, it originally used the Ælfred parser (among others); those who study English history will know that Ælfred was a Saxon king.