Saxonica: SaxonC product information


On this page:

See also:

XML document processing for C/C++, PHP and Python

SaxonC is a version of Saxon developed by compiling the Java source code to native executables that run on the C/C++ platform, with extensions for PHP and Python. All features of Saxon have been ported, other than those (such as collations) that are necessarily platform dependent. In particular, SaxonC provides processing in XSLT, XQuery and XPath, and Schema validation. It therefore makes these processing capabilities available to a plethora of other languages that are strongly coupled to C/C++ such as PHP, Perl, Python, and Ruby.

SaxonC 12

The latest release is SaxonC 12.4.2, built from SaxonJ 12.4 (using GraalVM Native Image 22.3.1), released 25 January 2024, on Linux, MacOS and Windows.

SaxonC 12 is released at the same time as the SaxonJ 12 Java product from which it is built.

SaxonC 12 offers the main Saxon products Saxon-HE, Saxon-PE and Saxon-EE for the C/C++, PHP and Python programming languages. APIs are available to run XSLT 3.0, XQuery 3.1, XPath 3.1 and Schema Validation 1.0/1.1 from C/C++, PHP and Python applications.

SaxonC is a library with APIs for C, C++, PHP, and Python. This version is reengineered to use GraalVM, replacing the defunct ExcelsiorJET technology. The main benefit of the change is that we are now running on a supported platform, greatly reducing the risk of security vulnerabilities. In addition GraalVM is showing excellent performance results. All SaxonC editions currently ship with GraalVM Community Edition. For Python users (versions 3.8 - 3.10), the SaxonC API for Python can be installed using pip from the standard PyPI repository.

Note that a couple of features which were supported in SaxonC 11 are not currently available in SaxonC 12: support for user defined functions in C++ and PHP; and ICU localization.

For detailed information on all SaxonC releases, see the Release notes.

SaxonC 11

The previous SaxonC series 11 was built from SaxonJ 11 (using Excelsior JET Enterprise 15.3 MP1). The latest release in this series is SaxonC , released , on Linux, MacOS and Windows.

SaxonC 11 is the first major release of SaxonC in over two years, released at the same time as the SaxonJ 11 Java product from which it is built. For the first time, this brings Saxon on C/C++, PHP, and Python up to date with the latest releases on the Java and .NET platforms. Note that the version numbering has been changed to reflect this: for SaxonC, series 11 follows series 1.2.

SaxonC-PE and SaxonC-EE provide support for user defined functions in C++ and PHP: allowing users to write functions in C++ or PHP and invoke them in XSLT, XQuery and XPath.


Separate download files are available for the three product editions of SaxonC, namely: SaxonC-HE (open-source), SaxonC-PE and SaxonC-EE (commercial products).


Download the latest SaxonC releases from the C/C++, PHP and Python download page.

For older releases (including releases in the previous 1.2 series), go to Archive.

Return to top of page


The products SaxonC-PE and SaxonC-EE are commercial products, and require a license key. By downloading the software, you agree to the terms and conditions published at (for use with a free evaluation license) or (in the case of paid-up licenses, purchased from our online store).

Location of the Saxon license file for commercial products: SaxonC looks for the license key in the directory where the main SaxonC library has been installed (for example on Linux, in '/usr/lib' if this is the location of the installed library); and the directory identified by the environment variable SAXONC_HOME. Alternatively, the location can be supplied using the licenseFileLocation configuration property. For more information see Licensing in the SaxonC documentation.

The product SaxonC-HE is open-source. The primary license is the Mozilla Public License version 2.0. In most cases, the source files are marked as being "incompatible with secondary licenses", which means that the code cannot be combined with code issued under a GPL license (the reason for this is the difficulty of contacting all past contributors to gain their assent).

Some components are licensed under the Apache version 2.0 license or under BSD-style licenses. For more information see Licenses.

Return to top of page


Full documentation for SaxonC 12 is available. The SaxonC 12 documentation contains information specific to SaxonC - including instructions for installing and configuring the product, details of the SaxonC C/C++ API, PHP API and Python3 API, and sample code. Meanwhile, the main Saxon 12 documentation contains further information relevant to SaxonC.

Documentation for previous versions is available as below:

SaxonC 11 documentation with C/C++ API, PHP API and Python3 API, see also the main Saxon 11 documentation for further relevant information.

Saxon/C 1.2 documentation see also C/C++ API, PHP API and Python3 API

Saxon/C version 1.1 see also PHP API

Saxon/C version 1.0 see also PHP API

Return to top of page


Please use the help forums and bug trackers at if you need help or advice. For more details see Support.

Return to top of page


The most recent maintenance releases for the latest SaxonC series 12 and 11 are available at C/C++, PHP and Python platforms downloads. This section contains downloads for the last maintenance releases for earlier series. (Note that the version numbering was changed for SaxonC 11 - series 11 follows series 1.2.)

Saxon/C 1.2 Latest version 1.2.1 released 28 October 2019. 64-bit versions:

Linux MacOS Windows
EE 1.2.1 (Linux)
PE 1.2.1 (Linux)
HE 1.2.1 (Linux)
EE 1.2.1 (MacOS)
PE 1.2.1 (MacOS)
HE 1.2.1 (MacOS)
EE 1.2.1 (Windows)
PE 1.2.1 (Windows)
HE 1.2.1 (Windows)

Saxon/C 1.1 Latest version 1.1.2 released 21 February 2019; 1.1.3 (Windows only) released 11 April 2019. 64-bit versions:

Linux MacOS Windows
EE 1.1.2 (Linux)
PE 1.1.2 (Linux)
HE 1.1.2 (Linux)
EE 1.1.2 (MacOS)
PE 1.1.2 (MacOS)
HE 1.1.2 (MacOS)
EE 1.1.3 (Windows)
PE 1.1.3 (Windows)
HE 1.1.3 (Windows)

Saxon/C 1.0 Latest version 1.0.2 released 5 August 2016:

Linux 32-bit Linux 64-bit MacOS 64-bit
EE 1.0.2 (Linux 32-bit)
PE 1.0.2 (Linux 32-bit)
HE 1.0.2 (Linux 32-bit)
EE 1.0.2 (Linux 64-bit)
PE 1.0.2 (Linux 64-bit)
HE 1.0.2 (Linux 64-bit)
EE 1.0.2 (MacOS)
PE 1.0.2 (MacOS)
HE 1.0.2 (MacOS)

Return to top of page

12 January 2023