Latest stable release: 5.12.0, released 12 November 2015 (see box at right →)
LibSBML is a free, open-source programming library to help you read, write, manipulate, translate, and validate SBML files and data streams. It's not an application itself (though it does come with example programs), but rather a library you embed in your own applications.
LibSBML is available for free under LGPL terms in both source-code form and precompiled binaries for Windows, Mac OS X, and Linux.
Why use libSBML?
There are many reasons to prefer libSBML over the direct use of an XML parser. First, libSBML understands all Levels and Versions of SBML, and supports extensions for SBML Level 3 packages. Here are some additional benefits:
- API for many languages. LibSBML is written in ISO C and C++ but can be used from all the languages listed in the right-hand box.
- Object model. LibSBML's object model and API are designed around SBML and the operations that are commonly needed when working with SBML.
- Features. LibSBML offers powerful features such as reading/writing compressed SBML files, detecting overconstrained models, checking units, an API for SBML
<annotation>content, and support for the three most popular XML parser libraries: Xerces, Expat, and libxml2.
- Validation. LibSBML implements all the validation rules defined in the SBML specifications, and performs additional validation of its own. An API provides control over libSBML's validation behavior.
- Portability. The code is highly portable. It's supported on Linux (multiple variants), Windows (native), MacOS X, and also runs on Solaris and FreeBSD.
Please cite the paper if you use libSBML
Article citations are crucial to our academic careers. If you use libSBML and you publish papers about your software, we ask that you please cite the libSBML paper:
Bornstein, B. J., Keating, S. M., Jouraku, A., and Hucka M. (2008) LibSBML: An API Library for SBML. Bioinformatics, 24(6):880–881, doi:10.1093/bioinformatics/btn051.
A stable release includes support for SBML Level 3 Core and all accepted Level 3 packages, as well as support for packages that are currently under development. An experimental-only release only updates code for the SBML Level 3 packages under development. A full explanation of the libSBML release types and the release schedule can be found here.
Development roadmap and history
Plans for upcoming versions of libSBML are described on a separate libSBML development roadmap page. Previous development pages are available here. Finally, the complete releases of all previous versions are always available in the download area on SourceForge.net.
LibSBML has been developed and supported for many years and is the result of hard work by many people. We especially thank the following contributors (in alphabetical order):
|• Gordon Ball||• Stefan Hoops|
|• Bill Denney||• Totte Karlsson|
|• Christoph Flamm||• Moriyoshi Koizumi|
|• Akira Funahashi||• Ben Kovitz|
|• Ralph Gauges||• Rainer Machné|
|• Martin Ginkel||• Nicolas Rodriguez|
|• Alex Gutteridge||• Fengkai Zhang|
How to contribute
We welcome contributions from anyone interested. It is especially useful to receive patches to enable building libSBML on operating systems or compilers that our outside our test matrix.
We are immensely thankful to the funding agencies, particularly NIH and DARPA, that have supported the development of libSBML over the years. Please visit our funding acknowledgements page for more information.