Saxonica: Technology platforms

Technology platforms

Java

Saxon's flagship product offering is on the Java platform, offering high performance and high availability. All functionality is available via a comprehensive range of APIs, some of them standardised (JAXP, XQJ) and others defined by Saxonica; all can be invoked both from Java itself, and from other JVM-based languages such as Scala, Kotlin, and Groovy. All three editions (HE, PE, and EE) are available.

.NET

Saxon 10 and earlier versions were delivered on .NET Framework by cross-compiling the Java bytecode using the open-source IKVM toolset. IKVM never supported .NET Core (or .NET 5, which is based on .NET Core), and .NET Framework has been discontinued, so a new approach became necessary.

SaxonCS 11 and above have been created using a different approach: source-level Java to C# conversion using a Saxonica-developed transpiler. One immediate benefit is that Saxon no longer requires any Java run-time support, which greatly reduces the footprint. The SaxonCS release corresponds to the "Enterprise Edition" of the Java (and previous .NET) products, and is currently available as a commercial (paid-for) product only.

It offers APIs similar to those of the Java product, but adapted to suit .NET programming conventions, and to provide interoperability with Microsoft's XML parsers. APIs can be invoked from C#, Visual Basic, and other .NET languages such as F#.

Native

SaxonC is delivered as a native executable for 64-bit Linux, Windows, and MacOS. It is produced by compiling the source code of the Java product to native executables that run on the C/C++ platform. Language bindings are available for C, C++, PHP, and Python. All three editions (HE, PE, and EE) are available.

JavaScript

SaxonJS is a high performance XSLT 3.0 and XPath 3.1 processor written for JavaScript environments, currently supported on Node.js and in all mainstream browsers. The product is free to use (but not open source), and an annual subscription offers further benefits including access to source code, and add-ons such as debugging tools. The SaxonJS XSLT processor can execute stylesheets compiled either using SaxonJS itself, or using the optimizing compiler that comes with the Saxon-EE Java product: the Saxon-EE compiler is faster and produces smaller and faster executable code.