libSBML Perl API  libSBML 5.10.0 Perl API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Differences between core libSBML and extensions

One aspect of libSBML that may need further explanation is the difference between core libSBML and extensions to libSBML.

SBML Level 3 introduced a modular architecture, in which SBML Level 3 Core is usable in its own right (much like SBML Levels 1 and 2 before it), and optional SBML Level 3 Packages add features to this Core. To support this architecture, libSBML is itself divided into a core libSBML and optional extensions. Core libSBML corresponds to the features of SBML Levels 1 to 3 Core; they are always available, and do not require applications to understand more than the SBML Levels 1 to 3 Core specifications. By contrast, the libSBML extensions are separate plug-ins that each implement support for a given SBML Level 3 package. There is a libSBML extension that implements support for the SBML Level 3 Hierarchical Model Composition package, another that implements support for the SBML Level 3 Flux Balance Constraints package, and so on. (Note also that the concept of “packages” in SBML is unrelated to packages in programming languages such as Java.)

Not all possible SBML Level 3 package specifications have been finalized by the SBML community at this time. The stable releases of libSBML only include the extensions for officially-released package specifications. Separate pages of this API manual describe the libSBML extensions for those SBML Level 3 packages that are available at this time. They are grouped under the section titled Level 3 Extensions.

Additional, experimental libSBML extensions may be available for other SBML Level 3 packages that may not yet have been finalized by the SBML community. You can find copies of these experimental extensions at the download site for libSBML on SourceForge.net. We supply ready-to-install precompiled binaries for many experimental, not-yet-official SBML Level 3 packages. The source code for these extensions is available from the libSBML SVN repository on SourceForge.